Na pulpicie mam plik .desktop. Jeśli napiszę:
Icon=/home/ianbell/Pictures/myLogo.png
ikona pliku .desktop zmienia się (oczekiwany wynik).
Ale jeśli napiszę:
Icon=~/Pictures/myLogo.png
to nie działa.
Czy nie ~/
jest skrót /home/$USER
?
Na pulpicie mam plik .desktop. Jeśli napiszę:
Icon=/home/ianbell/Pictures/myLogo.png
ikona pliku .desktop zmienia się (oczekiwany wynik).
Ale jeśli napiszę:
Icon=~/Pictures/myLogo.png
to nie działa.
Czy nie ~/
jest skrót /home/$USER
?
Odpowiedzi:
W .desktop
pliku musisz użyć ścieżek bezwzględnych i pełnych . Dlatego ~
nie jest rozwinięty.
To często popełniany błąd :)
Wyjątki dotyczące ikon opisano tutaj :
Ikona do wyświetlenia w menedżerze plików, menu itp. Jeśli nazwa jest ścieżką bezwzględną, użyty zostanie podany plik. Jeśli nazwa nie jest ścieżką bezwzględną, do zlokalizowania ikony zostanie użyty algorytm opisany w specyfikacji motywu ikony.
a tutaj :
Pole ikony to ikona, która powinna być używana przez program uruchamiający i reprezentuje aplikację. Wszystkie ikony znajdujące się w katalogu
/usr/share/pixmaps
nie muszą mieć pełnej ścieżki, ale nazwy pliku bez rozszerzenia. Na przykład, jeśli plik ikony to/usr/share/pixmaps/wallch.png
, to pole Ikona powinno być po prostu „ściśnięciem”. Wszystkie inne ikony powinny mieć określoną pełną ścieżkę.
W .desktop
pliku:
W Icon=
linii, są dopuszczone do użytkowania przestrzeni:
Icon=/home/jacob/Thema/icon/some folder/some icon.png
jest w porządku.
jednak
W Exec=
wierszu nie wolno używać spacji, chyba że w przypadku argumentu . We wszystkich innych przypadkach musisz podać kroki ścieżki spacją:
Exec=/home/jacob/Bureaublad/some folder/application
zawiedzie, podczas gdy
Exec="/home/jacob/Bureaublad/some folder/application"
lub
Exec=/home/jacob/Bureaublad/"some folder"/application
będzie dobrze działać
Krótko mówiąc, ścieżka .desktop
do pliku Icon=
rozumie ścieżki bezwzględne, ale nie rozwija tyldy, ze względu na specyfikację, która określa, w jaki sposób .desktop
powinny działać pliki.
~
rozszerzenie funkcji tilde ( ) do $HOME
zmiennej środowiskowej, na przykład w bash, która jest zwykłą powłoką logowania, z którą użytkownik wchodzi w interakcję w wierszu polecenia.desktop
plik nie jest tym samym co powłoka, jest to zwykły tekstowy plik konfiguracyjny, więc niekoniecznie działałby w ten sam sposób, nawet jeśli .desktop
pliki i powłoki można znaleźć w systemie Linux.desktop
powinien działać plik, jest zdefiniowany w specyfikacji Freedesktop w Desktop Entry SpecificationSpecyfikacja dotycząca pozycji na pulpicie dotyczy Icons
:
Jeśli nazwa jest ścieżką bezwzględną, użyty zostanie podany plik.
Dlatego mogłeś używać ścieżek bezwzględnych, ponieważ jest to objęte specyfikacją
Jeśli nazwa nie jest ścieżką bezwzględną, do zlokalizowania ikony zostanie użyty algorytm opisany w specyfikacji motywu ikony.
Kiedy sprawdzamy specyfikację motywu ikony , nic nie mówi, że musi ona w ogóle podążać za rozszerzeniem tyldy POSIX.
Tak więc, ze względu na specyfikacje Freedesktop dotyczących .desktop
„s Icon=
ustawienia ścieżki bezwzględne są obsługiwane, ale jak znaleźć, POSIX tyldy-to- $ HOME rozszerzenia nie są.