Как включить переменную окружения в лаунчере для иконки

Это расширение вопроса , как включить переменную окружения в средство запуска? . Этот вопрос объясняет, как использовать переменную окружения для части Exec файла .desktop, но не для значка

, например:

[Desktop Entry]
Name=My Application name
Comment=a comment
Exec=sh -c '$HOME/.bin/path/to/bin'
Icon= $HOME/.bin/path/to/icon

Этот Launcher будет работать, но значок не отображается Я не могу использовать что-то вроде

Icon=sh -c '$HOME/.bin/path/to/icon'

для значка ... что делать вместо этого?

3
задан 13 April 2017 в 15:23

2 ответа

Честно лучший способ использовать значок в средстве запуска состоит в том, чтобы удостовериться, что файл значка находится в пути поиска значка. Что касается определения базового каталога схемы и каталога значка freedesktop.org , значки должны разыскиваться, по крайней мере, в следующих каталогах в системах Ubuntu:

  • $HOME/.icons
  • $HOME/.local/share/icons
  • /usr/local/share/icons
  • /usr/share/icons
  • /usr/share/pixmaps

Поэтому, если Вы хотите использовать свой собственный значок и не иметь полномочий пользователя root, установить значок или в $HOME/.icons или в $HOME/.local/share/icons. Используя последнего, можно даже подражать системной структуре каталогов значка со значками мультиразрешения с помощью того же базового имени в соответствии с каталогами как $HOME/.local/share/icons/hicolor/48x48/apps и $HOME/.local/share/icons/hicolor/256x256/apps.

, Если значок находится в одном из этих доступных для поиска каталогов, можно просто использовать Icon=myapp в .desktop файл.

9
ответ дан 13 April 2017 в 15:23

Можно попробовать что-то вроде этого:

[Desktop Entry]
Type=Application
Name=MyApp
Exec=sh -c "mv %k %k-bak && sed -e "s,^Icon=.*,Icon=$HOME/.bin/path/to/icon.png,g" %k-bak > %k && chmod +x %k; rm %k-bak"
Icon=???

Это добавит относительный Путь значков к .desktop файлу после выполнения его.

еще Некоторые детали:

%k обозначает путь .desktop файла

  1. mv %k %k-bak, создает файл резервной копии

  2. sed -e "s,^Icon=.*,Icon=$HOME/.bin/path/to/icon.png,g" ..., заменяют старый Путь значков текущим $HOME... соединяют каналом (" ^"-> начинающаяся строка, здесь действительно важно для не замены команды сам), и создайте новый .desktop файл

  3. chmod +x %k, делают новый .desktop исполняемый файл файла

  4. rm %k-bak, удаляют старый файл резервной копии

, можно добавить собственные команды после того, как Путь значков был изменен или прежде.

Вдохновленный https://stackoverflow.com/a/3464561 и https://askubuntu.com/a/345123/265974

0
ответ дан 13 April 2017 в 15:23

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

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