На моем рабочем столе есть файл .desktop. Если я наберу:
Icon=/home/ianbell/Pictures/myLogo.png
значок файла .desktop изменится (ожидаемый результат).
Но если я наберу:
Icon=~/Pictures/myLogo.png
это не работает
Разве это не ~/
ярлык /home/$USER
?
Ответы:
Использование путей в файле .desktop
В
.desktop
файле вам нужно использовать абсолютные и полные пути. Поэтому~
не расширяется.Это часто совершаемая ошибка :)
Исключения, касающиеся значков, описаны здесь :
и здесь :
Больше информации
В
.desktop
файле:В
Icon=
строке, которые разрешается использовать пробелы:Это хорошо.
Однако
В
Exec=
строке вам не разрешено использовать пробелы, если только в случае аргумента . Во всех остальных случаях вам нужно заключить шаги пути в пробел:потерпит неудачу, пока
или
будет работать нормально
источник
Короче говоря, путь
.desktop
кIcon=
файлу понимает абсолютные пути, но не расширение тильды из-за спецификации, которая определяет, как.desktop
файлы должны работать.Расширение тильды
~
расширение tilde ( ) для$HOME
переменной среды часто находится, например, в bash, которая является обычной оболочкой входа, с которой вы взаимодействуете в командной строкефайлы .desktop
.desktop
файл - это не то же самое, что оболочка, это простой текстовый файл конфигурации, поэтому он не обязательно будет работать одинаково, даже если.desktop
файлы и оболочки могут быть найдены в Linux..desktop
должен работать файл, определяется в Спецификации входа рабочего стола FreedesktopСпецификация рабочего стола, касающаяся
Icons
, гласит:Вот почему вы смогли использовать абсолютные пути, так как это охватывается спецификацией
Когда мы проверяем Спецификацию Темы Иконок , ничто не говорит о том, что она вообще должна следовать за расширением тильды POSIX.
Резюме
Таким образом, в связи с техническим Freedesktop относительно
.desktop
«sIcon=
настройки, абсолютные пути поддерживаются, но , как вы обнаружили, POSIX тильда-to $ HOME разложение не являются.источник