На моем рабочем столе у меня есть .desktop файл. Если я ввожу:
Icon=/home/ianbell/Pictures/myLogo.png
значок .desktop изменений файла (ожидаемый результат).
Но, если я ввожу:
Icon=~/Pictures/myLogo.png
это не работает.
Не ~/
ярлык для /home/$USER
?
В .desktop
файл, необходимо использовать абсолютный и полный пути. Поэтому ~
не расширен.
Это - обычно делаемая ошибка :)
, Исключениями относительно значков является a.o., описал здесь :
Значок для отображения в файловом менеджере, меню, и т.д. Если имя является полным путем, данный файл будет использоваться. Если имя не будет полным путем, алгоритм, описанный в , то Спецификация Знаковой темы будет использоваться для определения местоположения значка.
и здесь :
[еще 1123] информацияПоле значка является значком, который должен использоваться средством запуска и представляет приложение. Всем значкам, которые находятся под каталогом
/usr/share/pixmaps
, не должны были указывать их полный путь, но их имя файла без расширения. Например, если файл значка/usr/share/pixmaps/wallch.png
, то Поле значка должно быть просто 'wallch'. Всем другим значкам нужно указать их полный путь.
В .desktop
файл:
В Icon=
строка, Вы , позволил использовать пробелы:
Icon=/home/jacob/Thema/icon/some folder/some icon.png
прекрасен.
Однако
В Exec=
строка, Вы не , позволил использовать пробелы, если в случае аргумент . Во всех других случаях необходимо заключить шаги пути в кавычки с пространством:
Exec=/home/jacob/Bureaublad/some folder/application
перестанет работать, в то время как
Exec="/home/jacob/Bureaublad/some folder/application"
или
Exec=/home/jacob/Bureaublad/"some folder"/application
будет хорошо работать
Короче говоря, .desktop
файл Icon=
путь понимает полные пути, но не расширение тильды, из-за спецификации, которая определяет как .desktop
файлы, как предполагается, работают.
~
) расширение на $HOME
переменная среды находится часто, например, в ударе, который является обычной оболочкой входа в систему, с которой Вы взаимодействуете на командной строке.desktop
файл не является тем же самым как оболочкой, это - конфигурационный файл простого текста, таким образом, это не обязательно работало бы тот же путь, даже если .desktop
файлы и оболочки могут оба быть найдены на Linux.desktop
файл, как предполагается, работает, определяется в Настольной Спецификации Записи FreedesktopНастольная Спецификация Записи, относительно Icons
, говорит:
Если имя будет полным путем, то данный файл будет использоваться.
Поэтому Вы смогли использовать полные пути, так как это покрыто спецификацией
Если имя не будет полным путем, то алгоритм, описанный в Спецификации Знаковой темы, будет использоваться для определения местоположения значка.
Когда мы проверяем Спецификацию Знаковой темы, нет ничего, что говорит, что она должна следовать за расширением тильды POSIX вообще.
Таким образом, из-за спецификаций Freedesktop относительно .desktop
Icon=
установка, полные пути поддерживаются, но поскольку Вы нашли, POSIX tilde-to-расширения $HOME не.