Это расширение вопроса , как включить переменную окружения в средство запуска? . Этот вопрос объясняет, как использовать переменную окружения для части 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'
для значка ... что делать вместо этого?
Честно лучший способ использовать значок в средстве запуска состоит в том, чтобы удостовериться, что файл значка находится в пути поиска значка. Что касается определения базового каталога схемы и каталога значка 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
файл.
Можно попробовать что-то вроде этого:
[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 файла
mv %k %k-bak
, создает файл резервной копии
sed -e "s,^Icon=.*,Icon=$HOME/.bin/path/to/icon.png,g" ...
, заменяют старый Путь значков текущим $HOME... соединяют каналом (" ^"-> начинающаяся строка, здесь действительно важно для не замены команды сам), и создайте новый .desktop файл
chmod +x %k
, делают новый .desktop исполняемый файл файла
rm %k-bak
, удаляют старый файл резервной копии
, можно добавить собственные команды после того, как Путь значков был изменен или прежде.
Вдохновленный https://stackoverflow.com/a/3464561 и https://askubuntu.com/a/345123/265974