Путь значков в .desktop файле

На моем рабочем столе у меня есть .desktop файл. Если я ввожу:

Icon=/home/ianbell/Pictures/myLogo.png

значок .desktop изменений файла (ожидаемый результат).

Но, если я ввожу:

Icon=~/Pictures/myLogo.png

это не работает.

Не ~/ ярлык для /home/$USER?

11
задан 17 January 2016 в 13:25

2 ответа

Использование путей в .desktop файле

В .desktop файл, необходимо использовать абсолютный и полный пути. Поэтому ~ не расширен.

Это - обычно делаемая ошибка :)

, Исключениями относительно значков является a.o., описал здесь :

Значок для отображения в файловом менеджере, меню, и т.д. Если имя является полным путем, данный файл будет использоваться. Если имя не будет полным путем, алгоритм, описанный в , то Спецификация Знаковой темы будет использоваться для определения местоположения значка.

и здесь :

Поле значка является значком, который должен использоваться средством запуска и представляет приложение. Всем значкам, которые находятся под каталогом /usr/share/pixmaps, не должны были указывать их полный путь, но их имя файла без расширения. Например, если файл значка /usr/share/pixmaps/wallch.png, то Поле значка должно быть просто 'wallch'. Всем другим значкам нужно указать их полный путь.

[еще 1123] информация

В .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

будет хорошо работать

10
ответ дан 23 November 2019 в 04:03

Короче говоря, .desktop файл Icon= путь понимает полные пути, но не расширение тильды, из-за спецификации, которая определяет как .desktop файлы, как предполагается, работают.

Расширение тильды

  • Где Вы видели бы тильду (~) расширение на $HOME переменная среды находится часто, например, в ударе, который является обычной оболочкой входа в систему, с которой Вы взаимодействуете на командной строке
  • удар и другие совместимые POSIX оболочки, делают tilde-to-расширение $HOME, согласовывающееся со спецификацией POSIX для оболочек

Файлы .desktop

  • Однако a .desktop файл не является тем же самым как оболочкой, это - конфигурационный файл простого текста, таким образом, это не обязательно работало бы тот же путь, даже если .desktop файлы и оболочки могут оба быть найдены на Linux
  • как a .desktopфайл, как предполагается, работает, определяется в Настольной Спецификации Записи Freedesktop

Настольная Спецификация Записи, относительно Icons, говорит:

Если имя будет полным путем, то данный файл будет использоваться.

Поэтому Вы смогли использовать полные пути, так как это покрыто спецификацией

Если имя не будет полным путем, то алгоритм, описанный в Спецификации Знаковой темы, будет использоваться для определения местоположения значка.

Когда мы проверяем Спецификацию Знаковой темы, нет ничего, что говорит, что она должна следовать за расширением тильды POSIX вообще.

Сводка

Таким образом, из-за спецификаций Freedesktop относительно .desktop Icon= установка, полные пути поддерживаются, но поскольку Вы нашли, POSIX tilde-to-расширения $HOME не.

4
ответ дан 23 November 2019 в 04:03

Другие вопросы по тегам:

Похожие вопросы: