Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Qt systray icon fails to load, causing X to blink and spam error



  • Hi, this is my first post here and it is in regards to a qt5 base app that is a gui for connman internet manager. The author released this software on his github below
    https://github.com/andrew-bibb/cmst

    I am hoping to help the author by asking this forum and hopefully someone can give a lead on where to look.

    When running the app ./cmst an error message saying QXcbWindow: Unhandled client message: "_NET_SYSTEM_TRAY_S0"
    Video of this error can be found http://frankshin.com/files/videos/cmst1.mkv

    If I run the app with the "-d" flag which disables the systray icon from showing, the app works fine and displays the Qt window.

    The author responded with "That information did help. I don't know for sure, but I have a theory. For QT the system tray implementation for X11 must be freedesktop.org compliant. I've looked at the freedesktop specification and they define the following hints: _NET_WM_NAME, WM_CLASS, _NET_WM_ICON, _NET_SYSTEM_TRAY_ORIENTATION.
    I then went to suckless.org site to see if they state anywhere that their tray is freedesktop.org compliant. Didn't find an answer to that one way or the other, but I did look at the code for their system tray and on line 459 found this hint: _NET_SYSTEM_TRAY_S0. My theory is that the system tray may not be strictly freedesktop.org compliant, or perhaps it expands upon the basic compliance and QT can't handle the expansion.
    I have revised the sources to check for a systemtray before we try to access it. I want to temporarily remove the tray from my system so I can test the new pieces. Once I've tested it it will be part of the package I'm planning to put out this weekend (actually on github now, but as I said, untested). I'm hoping that will let us work around the problem, but if QT recognizes the suckless.org tray, thereby passing my check, but chokes trying to put an icon there I may have to fall back to another commandline switch that will force the program to not use a systemtray."

    This issue seems to only happen to me as the rest of the users of this app are running a DE. I am running only DWM as my WM and my github for DWM is at https://github.com/frank604/dwm

    Other systray icons do work for me. Simplescreenrecorder, steam, clipit, dropbox, and caffeine.


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    Since this question is a going a bit low-level, I would recommend posting in on the interest mailing list (don't forget to subscribe first). You'll find there Qt's developers/maintainers (this forum is more user oriented)



  • Hi SGalst, thank you for the redirection. I wasn't sure to post in the threads from the beginning because as you pointed out, it is a low-level question. Much appreciated.


  • Lifetime Qt Champion

    You're welcome !

    There's nothing wrong posting low-level questions at all, they are just less likely to get answered.

    There's only a few (very few) Qt dev that are around here.


  • Lifetime Qt Champion

    By the way, if you find anything, please report it here, so other interested people can follow


Log in to reply