Дубликаты значков того же приложения, созданного в Dock, но WM_class не найден

Я следовал за всеми шагами в этом ответе: /questions/509874/dvojnyie-znachki-prilozhenij-v-doke-ubuntu/509880#509880

Однако когда я бегу xprop WM_CLASS в терминале и нажмите на окно моего приложения, оно дает мне: WM_CLASS: not found. Что я должен сделать, чтобы получить одну иконку приложения в доке Ubuntu?

Приложение, о котором я говорю, это Recoll, установленное с помощью apt-get install recoll, Я использую Ubuntu 18.04 (Xorg).

Содержание .desktop файл в /usr/share/applications:

[Desktop Entry]
Categories=Utility;Filesystem;Database;
Comment=Find documents by specifying search terms
Exec=recoll
GenericName=Local Text Search
Icon=recoll
Name=Recoll
Terminal=false
Type=Application
Keywords=Search;Full Text;

Редактировать:

Я пытался изменить .desktop линии файла путем внесения этих изменений

Exec=recoll --class CustomClassName

а затем добавление строки

StartupWMClass=CustomClassName

После этого приложение не запускается со своего значка, и я по-прежнему получаю WM_CLASS: not found. в терминале

1 ответ

Для аналогичной ситуации я должен сделать следующее:

  1. Определите класс, как в новом ответе на связанный вопрос

    Кратко:

    • открыть приложение
    • AltF2, записывать lgEnter, перейти к Windowsменю (вверху справа).
    • найдите приложение в списке и обратите внимание на его wmclass
    • закрыть приложение
  2. Добавить класс в файл

            StartupWMClass=classSeenInPreviousStep
    

    Обычно в: /usr/share/applicationsили же .local/share/applications

  3. сохранить значок в избранном (добавить в меню)

    • откройте приложение, right buttonв значке «Добавить в избранное». Если это не удается, проверьте, что в .desktop Terminal=false

    • или: открыть dconf-editor, поиск favorite-apps, добавлять .desktopфайл для списка

    • или: вставьте это, чтобы создать скрипт для этой цели

                cat >addToMenu.sh <<'EOL'
      #!/usr/bin/env bash
      STATE=`gsettings get org.gnome.shell favorite-apps`
      STATE=$(sed 's/]/,'\ \'YOURAPP.desktop\'']/g' <<< $STATE)
      gsettings set org.gnome.shell favorite-apps "${STATE}"
      EOL
      
      #  Run it:
      sudo apt install gnome-shell-extensions
      bash addToMenu.sh
      
Другие вопросы по тегам