Піктограма відсутня при запуску програми


12

Я створив запуск програми для запуску /usr/share/applicationsrdesktop. Файл вказує ім'я піктограми, і я додав іконки до:

/usr/share/icons/HighContrast/48x48/apps
/usr/share/icons/HighContrast/22x22/apps
/usr/share/icons/HighContrast/256x256/apps
/usr/share/icons/HighContrast/32x32/apps
/usr/share/icons/HighContrast/scalable/apps-extra
/usr/share/icons/HighContrast/24x24/apps
/usr/share/icons/HighContrast/16x16/apps
/usr/share/icons/hicolor/scalable/apps
/usr/share/icons/hicolor/128x128/apps
/usr/share/icons/hicolor/16x16/apps

Потім я запускаю пускову установку на панель завдань, а пускова установка з правильним логотипом видно на панелі завдань. Однак, коли я запускаю завдання, на панелі завдань створюється нова піктограма - квадрат із знаком питання в центрі.

Які піктограми мені потрібні та де, щоб на панелі завдань відображався правильний значок програми під час його запуску?

Вміст файлу .desktop:

[Запис на робочому столі]
Версія = 1.0
Термінал = хибний
Значок = mswindows
Тип = Додаток
Категорії = Мережа;
Exec = rdesktop win7shared1 -g 1680x1000

Ім'я = win7shared1
GenericName = rdesktop
Коментар = Відкрити робочий стіл Windows

Ключові слова = Windows
StartupNotify = false

Відповіді:


15

Що, швидше за все, вирішить вашу проблему, це зробити наступне:

  1. Відкрийте додаток
  2. Коли він працює, відкрийте термінал і введіть:

    xprop WM_CLASS
    
  3. Потім натисніть на відкрите вікно програми.

  4. Вихід буде мати вигляд (приклад gedit):

    WM_CLASS(STRING) = "gedit", "Gedit"
    
  5. Скористайтеся першою частиною (у цьому випадку gedit), щоб скласти рядок у вашому .desktopфайлі:

    StartupWMClass=<string>
    

    (замінити <string>фактичним (перша частина) результату xprop WM_CLASS, наприклад StartupWMClass=gedit)

Тепер спробуйте ще раз (можливо, вам доведеться вийти / ввійти), швидше за все, програма з’явиться в панелі запуску під власною іконою.

Пояснення

  • Коли програма запускається правильно із запуску ( .desktopфайлу), але з’являється інша піктограма, яка містить лише загальну піктограму (знак питання), найімовірніше, що вікно програми та панель запуску з певних причин не підключаються, а пускач не робить розпізнати вікно програми як "своє". Це часто трапляється, коли використовується сценарій або нестандартний додаток (-команда). У цих випадках StartupWMClass=лінія часто є рішенням.

Дякую Якову. Це вирішило проблему. Для запису рядок WM_CLASS був "rdesktop", "rdesktop".
глейтон

@clayton ідеально, радий, що це спрацювало.
Яків Влійм

1
Ваш крок 2 може бути зменшений, оскільки xprop дозволяє вам пройти атом, який ви хочете повернути, xprop WM_CLASSдостатньо бігу
johndrinkwater

@johndrinkwater Абсолютно, дякую за підказку. Це більше року тому, понад 14 місяців - це так, як це написала інша людина :). Відредагує ...
Яків Влійм

@ jacob-vlijm :) просто натрапив на це,
вивчаючи

2

для мене xprop|grep WM_CLASSдали WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "jetbrains-pycharm-ce"(у мене була ця проблема з pycharm для python)

Це було те, sun-awt-X11-XFramePeerщо мені було потрібно як рядок у моєму файлі .desktop (без лапок) - Дякую!


Я додав StartupWMClass=sun-awt-X11-XFramePeerдо свого і нічого не сталося! Чи знаходиться .desktopфайл у домашній папці?
anon58192932

0

Розмістивши піктограми в потрібному місці, слід просто перезапустити xserver (вихід і повернення назад).
Спробуйте також оновити кеш значків (просто вставте код нижче в термінал):

for d in ~/.icons/*; do gtk-update-icon-cache -f $d; done
for d in /usr/share/icons/*; do sudo gtk-update-icon-cache -f $d; done
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.