Значок активного приложения не отображается на док-станции

у меня есть некоторые приложения, такие как KColorChooser , KBreakOut , MadView3D , которые не отображают значок приложения на док-станции, когда они активны. Отображается только квадрат без значка. Кроме того, при наведении на них курсора вместо имени приложения отображается unknown .
enter image description here

Я использую Gnome в качестве среды рабочего стола в Ubuntu 20.04. Почему это происходит и как это исправить?

1
задан 17 June 2020 в 16:06

2 ответа

Я решил проблему с помощью этого видео: https://youtu.be/xZ_M3Q-U-J0.

Вот краткое изложение:
Gnome (и любой другой рабочий стол) идентифицирует экземпляры приложения и отслеживает их с помощью свойства WM_CLASS.
Некоторые приложения KDE не предоставляют в себе свойство WM_CLASS, и из-за этого отсутствующего свойства WM_CLASS Gnome не может отслеживать приложения и, следовательно, не может связать с ними значки. Каждый раз, когда создается новый экземпляр того же приложения, он показывает новый элемент в доке.
Эта проблема также возникает в плазме KDE: https://forum.kde.org/viewtopic.php?f=289&t=160452

Решение:

  • Откройте приложение, которое ведет себя таким образом.
  • Откройте терминал и введите команду xprop WM_CLASS. Курсор мыши изменится на символ +. Нажмите на это приложение курсором в форме +. Строка WM_CLASS будет распечатана на терминале.
    enter image description here
  • Скопируйте файл .desktop этого приложения из папки /usr/share/applications/ в локальный каталог ~/.local/share/applications/ папка. Для меня он назывался org.kde.kcolorchooser.desktop.
    Не изменяйте исходный файл, поскольку он будет заменяться при каждом обновлении приложения.
  • Откройте файл в текстовом редакторе и добавьте строку StartupWMClass=, где следует заменить строкой, полученной из приведенной выше команды. Для меня это был StartupWMClass=kcolorchooser.
  • Сохраните файл и наслаждайтесь! Проблема исчезнет.
9
ответ дан 27 July 2020 в 19:58

Общие аспекты

Значки на док-станции и в обзоре приложения соответствуют файлам запуска на рабочем столе. Это небольшие текстовые файлы с расширением .desktop . Они предоставляют операционной системе информацию о том, как запустить приложение, какой значок использовать ...

Если у приложения нет соответствующего файла .desktop или некоторых элементов в , Файл рабочего стола определен неправильно, система может вернуться к универсальному значку и общему имени приложения.

Вы можете найти все файлы .desktop , содержащие, например, KColorChooser с помощью команды

find / -name '*.desktop' -exec grep -H $1 "KColorChooser" \; 2>/dev/null

Особенности для приложений привязки KDE

Я не могу полностью воспроизвести проблему, которую вы указали: для двух из трех упомянутых вами приложений я получаю две иконки, одну с правильным значком и одну с общим значком. При запуске в доке используется правильный значок, и отображается правильное имя приложения.

Для некоторых пакетов KDE, которые поставляются как SNAP, могут быть проблемы с упаковкой. При первой установке два разных файла .desktop устанавливаются в папку / var / lib / snapd / desktop / application / :

kcolorchooser_kcolorchooser.desktop
kcolorchooser_org.kde.kcolorchooser.desktop

У них разные имена и разные строки Exec = , поэтому они отображаются в виде двух разных значков. kcolorchooser_kcolorchooser.desktop указывает полный путь к значку в / snap / kcolorchooser / и является тем, на котором отображается значок. kcolorchooser_kcolorchooser.desktop указывает kcolorchooser , но это явно не входит в нормальный путь поиска значков, и отображается общий значок.

Обходной путь - скрыть «плохое» Файл .desktop . Скопируйте его в каталог ~ / .local / share / Applications и добавьте строку Hidden = true .

desktop указывает полный путь к значку в / snap / kcolorchooser / и является тем, на котором отображается значок. kcolorchooser_kcolorchooser.desktop указывает kcolorchooser , но это явно не входит в нормальный путь поиска значков, и отображается общий значок.

Обходной путь - скрыть «плохое» Файл .desktop . Скопируйте его в каталог ~ / .local / share / Applications и добавьте строку Hidden = true .

desktop указывает полный путь к значку в / snap / kcolorchooser / и является тем, на котором отображается значок. kcolorchooser_kcolorchooser.desktop указывает kcolorchooser , но это явно не входит в нормальный путь поиска значков, и отображается общий значок.

Обходной путь - скрыть «плохое» Файл .desktop . Скопируйте его в каталог ~ / .local / share / Applications и добавьте строку Hidden = true .

файл рабочего стола . Скопируйте его в каталог ~ / .local / share / Applications и добавьте строку Hidden = true .

файл рабочего стола . Скопируйте его в каталог ~ / .local / share / Applications и добавьте строку Hidden = true .

1
ответ дан 19 June 2020 в 21:23

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

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