На днях заметил, что часть приложений время от времени перестают рисовать свои иконки в трее. С одной стороны, xembed - deprecated, но, судя по всему, плазма как-то пытается его использовать и отображать иконки в трее для “устаревших” приложений. Но не всегда это получается (ниже чуть подробнее).
По сути, нормально работать будут только приложения, которые поддерживают appindicator api.
Проблемные приложения
Среди приложений, которые отказались отображать иконки:
- Skype Preview
- Wire
- Telegram Desktop (официальная бинарная сборка)
- Slack
- Insync
- Zim
- DavMail
libappindicator-gtk2
Skype (в том числе Ghetto Skype), Wire, Telegram Desktop лечатся путём установки libappindicator-gtk2 (речь про Arch и Manjaro):
pacman -S libappindicator-gtk2
sni-qt
Qt4-based приложения лечатся путём установки sni-qt:
pacman -S sni-qt
Davmail, Java
А вот для Davmail, который написан на Java находим такой ответ:
Позволю процитировать:
There is still not standard support in java for appindicator API. However with DavMail 4.7.0 your can use the new -notray command line option: davmail -notray
Т.е. стандартного пути решения проблемы не существует.
XEmbed SNI proxy
Пакет plasma-workspace содержит в себе программку, которая позволяет xembed приложения сделать доступными в окружении плазмы: xembedsniproxy. Данное приложение должно запускаться автоматически при старте KDE через файл:
/etc/xdg/autostart/xembedsniproxy.desktop
но по какой-то причине это не всегда происходит. С причиной этой ещё предстоит разобраться, возможно стартует слишком рано, не находит чего-то и аварийно завершается. На это наводит наблюдение, что если KDE перестартовать, то иконки начинают рисоваться как нужно в большинстве случаев.
Пока же, можно вручную запустить, что излечивает приложения из списка выше:
- Slack
- Zim
- Insync
- Davmail
Вместо заключения
Неплохая заметка “Всё о зоопарке треев”: