Синхронизация значков между .desktop и док-станцией
Я создал пользовательскую запись .desktop в моем домашнем каталоге. ~/.local/share/applications/startMyApp.desktopЯ создал ее, чтобы она использовала xterm вместо gnome-terminal. Я хочу, чтобы он выглядел в доке иначе, чем мои терминалы gnome, которые я использую в интерактивном режиме.
В startMyApp.desktopвыглядит следующим образом :
[Desktop Entry]
Type=Application
Name=MyScript
Terminal=false
Exec=xterm -e myScript.sh
Icon=myIcon.png
Я создал файл значка в ~/.icons/myIcon.png
Значок отображается правильно в браузере файлов по умолчанию. При открытии из файлового браузера он выполняет сценарий в xterm, как и ожидалось, однако значок в доке отображается как другой общий значок xterm. Откуда этот значок? Он встроен в двоичный файл?
Как я могу это изменить? Я хочу, чтобы значок в доке выглядел таким же, как тот, который указан в .desktopфайле. Приложения, входящие в комплект Ubuntu, при запуске имеют такой же значок в доке (кроме красных точек, указывающих, сколько окон открыто).
Ответы
Вам нужно добавить правильную StartupWMClassзапись в свой .desktopфайл. Для этого выполните следующие действия.
- Запустите соответствующее приложение.
- Запустить отдельное окно Терминала и запустить xprop WM_CLASS.
- Наведите курсор на открытое окно интересующего вас приложения. Курсор к этому моменту должен превратиться в перекрестие. Щелкните. Вы должны получить WM_CLASSстроку для приложения в окне Терминала.
- В - .desktopфайле добавьте следующую строку- StartupWMClass=OBTAINED-VALUE- Вместо - OBTAINED-VALUEвведите значение, полученное на шаге 3, без кавычек.
Обновление из OP:
также кажется, что мне нужно было указать имя для экземпляра xterm. Строка exec теперь выглядит как
xterm -name myApp -e myScript.sh