Masaüstümde bir .desktop dosyası var. Ben yazarsam:
Icon=/home/ianbell/Pictures/myLogo.png
.desktop dosyasının simgesi değişir (beklenen sonuç).
Ama şunu yazarsam:
Icon=~/Pictures/myLogo.png
çalışmıyor.
~/
Kısayol değil /home/$USER
mi?
Masaüstümde bir .desktop dosyası var. Ben yazarsam:
Icon=/home/ianbell/Pictures/myLogo.png
.desktop dosyasının simgesi değişir (beklenen sonuç).
Ama şunu yazarsam:
Icon=~/Pictures/myLogo.png
çalışmıyor.
~/
Kısayol değil /home/$USER
mi?
Yanıtlar:
Bir .desktop
dosyada, mutlak ve tam yollar kullanmanız gerekir . Bu nedenle ~
genişletilmez.
Bu yaygın olarak yapılan bir hatadır :)
Simgelerle ilgili istisnalar burada açıklanmıştır :
Dosya yöneticisi, menüler, vb. İçinde görüntülenecek simge. Ad mutlak bir yolduysa, verilen dosya kullanılır. Ad mutlak bir yol değilse , simgeyi bulmak için Simge Tema Spesifikasyonunda açıklanan algoritma kullanılacaktır.
ve burada :
Simge alanı, başlatıcı tarafından kullanılması gereken ve uygulamayı temsil eden simgedir. Dizinin altındaki tüm simgelerin
/usr/share/pixmaps
tam yollarının belirtilmesi gerekmez, ancak dosya adı uzantısızdır. Örneğin, simge dosyası ise/usr/share/pixmaps/wallch.png
, Simge alanı sadece 'wallch' olmalıdır. Diğer tüm simgelerin tam yolu belirtilmelidir.
Bir .desktop
dosyada:
Gelen Icon=
hattı, sen edilir kullanım alanlarına izin:
Icon=/home/jacob/Thema/icon/some folder/some icon.png
iyi.
ancak
Gelen Exec=
hattı, sen edilir değil bir durumda olmadıkça, boşluk kullanmasına izin argüman . Diğer tüm durumlarda, yol adımlarını boşlukla belirtmeniz gerekir:
Exec=/home/jacob/Bureaublad/some folder/application
başarısız olurken
Exec="/home/jacob/Bureaublad/some folder/application"
veya
Exec=/home/jacob/Bureaublad/"some folder"/application
iyi çalışacak
Kısacası, dosyaların nasıl çalışacağını tanımlayan belirtim nedeniyle , .desktop
dosyanın Icon=
yolu mutlak yolları anlar, ancak tilde genişletmeyi değil ..desktop
~
) genişlemesini görebileceğiniz yer $HOME
, genellikle komut isteminde etkileşimde bulunduğunuz olağan giriş kabuğu olan bash biçimindedir..desktop
dosya kabukla aynı şey değildir, düz bir metin yapılandırma dosyasıdır, bu nedenle .desktop
dosya ve kabuklar Linux'ta bulunsa bile aynı şekilde çalışmayabilir..desktop
dosyanın nasıl çalışması gerekiyordu, Freedesktop'un Masaüstü Giriş Şartnamesi'nde tanımlanırMasaüstü Giriş Şartnamesi Icons
, şöyle diyor:
Ad mutlak bir yolsa, verilen dosya kullanılır.
Bu nedenle, spesifik yollar kapsadığı için mutlak yolları kullanabildiniz.
Ad mutlak bir yol değilse , simgeyi bulmak için Simge Tema Spesifikasyonunda açıklanan algoritma kullanılacaktır.
Simge Tema Spesifikasyonunu kontrol ettiğimizde , POSIX'in tilde genişletmesini takip etmesi gerektiğini söyleyen hiçbir şey yok.
Böylece, ilgili FreeDesktop teknik özelliklerinden dolayı .desktop
'ın Icon=
ayarını mutlak yolları desteklenir, ancak bulduğumuz gibi, POSIX yaklaşık-to-$ ANA açılımları değildir.