.Desktop dosyasındaki simge yolu


11

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/$USERmi?


1
~ sadece bir kabukta ana dizininizin kısaltmasıdır.
user253751

@JacobVlijm: Üzgünüm, uykuya daldım, gece gündüz programlıyorum :-)

1
@IanBell Haha duygu biliyorum :)
Jacob Vlijm

/ home / $ USER çalışmaz. Görünüşe göre - / home / $ (whoami). Aşağıdan yorumlarımı gör.
Ajay Kumar

Yanıtlar:


10

Bir .desktop dosyasındaki yolların kullanımı

Bir .desktopdosyada, 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/pixmapstam 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.

Daha fazla bilgi

Bir .desktopdosyada:

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


Öyleyse, "kullanıcıların ana dizinine" göre bir yola nasıl başvurabilirim?
Aaron Franke

Aaron Franke, geçerli kullanıcı adını almak için $ (whoami) kullanabilirsiniz. Denemedim sığınak ama bu - geçerli kullanıcı için ev dir için - / home / $ (whoami) çalışması gerekir.
Ajay Kumar

Denedim ve Aaron çalışıyor.
Ajay Kumar

4

Kısacası, dosyaların nasıl çalışacağını tanımlayan belirtim nedeniyle , .desktopdosyanın Icon=yolu mutlak yolları anlar, ancak tilde genişletmeyi değil ..desktop

Tilde genişleme

  • Ortam değişkenine tilde ( ~) genişlemesini görebileceğiniz yer $HOME, genellikle komut isteminde etkileşimde bulunduğunuz olağan giriş kabuğu olan bash biçimindedir.
  • bash ve diğer POSIX uyumlu mermiler, mermiler için POSIX spesifikasyonu ile tutarlı olarak tilde- $ HOME genişletmesi yapın

.desktop dosyaları

  • Ancak, bir .desktopdosya kabukla aynı şey değildir, düz bir metin yapılandırma dosyasıdır, bu nedenle .desktopdosya ve kabuklar Linux'ta bulunsa bile aynı şekilde çalışmayabilir.
  • bir .desktopdosyanın nasıl çalışması gerekiyordu, Freedesktop'un Masaüstü Giriş Şartnamesi'nde tanımlanır

Masaü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.

özet

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.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.