Для Qt5 есть тестовое приложение на python, которое создаёт значок в трее: https://github.com/pyqt/examples/tree/_/src/pyqt-official/desktop/systray По состоянию галочки Show icon этот значок должен появляться и исчезать (так работает в xfce4-panel), а значок реагирует. При это смена картинки для значка отлично работает.
Я что-то не понимаю в dbus, потому что вот так управление видимостью значка работает: $ dbus-launch python3 systray.py
Всё ещё хуже, оно начинает работать так: $ DBUS_SESSION_BUS_ADDRESS=no python3 systray.py При том что штатно там, например DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/502/bus
https://github.com/gyunaev/birdtray/issues/376 https://askubuntu.com/questions/732967/how-to-fix-non-working-dropbox-icon-on-xubuntu-14-04-lts-64 Похоже, что не работает управление через dbus, и если на шине не доступно управление трем, то Qt переходит на какой-то более простой способ. Который работает! Было две давно закрытые баги для Xfce и Mate: https://bugreports.qt.io/browse/QTBUG-51150 https://bugreports.qt.io/browse/QTBUG-54345 Оригинально, что в Телеграме про такую багу забыли много лет назад: https://github.com/telegramdesktop/tdesktop/issues/1975
Предполагаю, что в Qt5 что-то сломано на тему отказа от использования DBUS для случая mate-panel. http://arsenshnurkov.github.io/linux-sharp/system-tray-icon/index.htm https://aur.archlinux.org/packages?K=StatusNotifierItem&SB=p На Сизифе проблема с Qt5 сохраняется, но в Телеграме, собранном с системным Qt6, проблемы нет.
https://stackoverflow.com/questions/25314391/system-tray-icon-doesnt-show-in-qt5-linux-lxde
Created attachment 10938 [details] Простейший пример с QSystemTrayIcon При нажатии на значок в трее он должен исчезать. Но картинка остаётся после setVisible(false), хотя больше и не реагирует на события.
Created attachment 10939 [details] Лог dbus при вызове setVisible(false) Добавил лог dbus при вызове setVisible(false) для MATE и XFCE.