andrew-bibb / cmst

QT GUI for Connman
174 stars 38 forks source link

i haven't tray icon on archlinux with xfce #34

Closed Dea1993 closed 9 years ago

Dea1993 commented 10 years ago

i've installed connman and cmst from AUR, but i haven't tray icon on xfce, why?? when i launch cmst i don't receive error on terminal

CMST version CMST - Connman System Tray 14.10.15-1 thanks

andrew-bibb commented 10 years ago

My guess is probably related to this: http://stackoverflow.com/questions/24373967/qt-5-3-qsystemtrayicon-not-working-correctlylinux

The QT guys seem to be having untold problems with the system tray icons in QT5. There are questions, comments, and bug reports all over the internet.

If it is this particular bug you might be able to see it if you enable system tray popups in the preferences tab and then disconnect your active service. If it is that the popup should appear somewhere (upper left corner seems to be a common location) on your screen.

andrew-bibb commented 10 years ago

I'm trying to install XFCE on a test partition so I can play around and see if there is anything I can do. Really hard for me to try and debug these things without seeing them first hand.

Dea1993 commented 10 years ago

ok thanks

andrew-bibb commented 10 years ago

Maybe some progress. When I first started the icon almost never showed up, and on the odd occasion it did it was blank.

I got better behavior by going to: Applications Menu->Settings->Window Manager Tweaks->Compositor then check Enable Display Compositing. When the icon decides to show itself it is at least not blank. This also made the task manager icon appear which I didn't even know was running.

If the icon does not appear the other thing I found was to go to Preferences in CMST and check and uncheck the "Hide Tray Icon" box. Sometimes I've needed to do it 3 or more times, but eventually the icon will appear in the tray.

I'm going to think about hammering the icon start, maybe start it a half dozen times before giving up. I need to see first if the WM is reporting the the tray icon starting when it actually didn't.

andrew-bibb commented 10 years ago

Sometimes check and uncheck the box a whole lot more than 3 times (as in several dozen). Not sure if it matters but it seems that the icon shows up more when the task manager is running in the tray.

andrew-bibb commented 10 years ago

I just uploaded a version that will hammer the XFCE system tray until it gives up a valid icon. There is a loop limit of 250 attempts before it gives up. There is debug code in there now, so if you start CMST from a terminal you will see a line printed each time it hammers the system tray. Those code lines will be removed in the next day or two.

Can you give this a try and let me know if it works. Make sure the compositor is clicked on.

Thanks

freegigi commented 10 years ago

Doesn't work for me... I get "Failed to get a valid icon from the systemtray in 125 tries". I tried checking and unchecking the "Hide Tray Icon" box several times, still no. I'm on Archlinux 64bit, upgraded to current and cmst from aur (not cmst-git, if it matters).

andrew-bibb commented 10 years ago

If you got that error message the AUR and GIT versions were in sync, so no, it does not matter.

I'll be asking some more questions in a followup post to try and lock this down, but for now I'm posting for anybody else reading. The version uploaded today (version 2014.11.24) has changed the code relative to this issue. My "fix" apparently broke KDE. Now the default is to create a system tray icon the way we always did, and if you wish to try the code that hammers the system tray you must supply the command line option --use-xfce when starting.

From everything I can find this is the known problem with icons starting at 0,0 not working in xfce. In my test with xfce I noticed that when the icon showed up it had an origin not 0,0, and I keep hammering the system tray until it gives me one or we hit the loop limit of 125. It appears that maybe the problem will be resolved in QT 5.4. If that is the case the --use-xfce command line option will still be valid so any startup scripts or commands that users have will still be accepted, but I'll change it to a "no operation".

If anybody is using XFCE and has the system tray working can you please post here. I have a test XFCE system and the old code (moved to --use-xfce) brings up the tray icon every time. Sometimes (not often) on the first try, always by try 15. I'm trying to find what is different between my XFCE install and the ones that do not work.

freegigi commented 10 years ago

Still doesn't work, sorry. Here's the output: http://pastebin.com/raw.php?i=PmxXCWgu

andrew-bibb commented 10 years ago

Do you know how you are getting the repeating "QSystemTrayIcon::setVisible: No Icon set" message? That is not anything I put in. The last line "Failed to get a valid icon..." is mine.

I'm trying to see what is different from yours to mine, and on my system I do not get the repeating message. I almost always have to iterate, you can tell by how long it takes to come up. From other testing I did the iterations never ran above 15 loops, but the repeating message has never appeared on my system. Something is different between my XFCE test system and yours, if I can figure out what it is that will at least be a place to start looking.

DenisNardin commented 10 years ago

Hello, I have the same problem (XFCE 4.10 on up-to-date Debian Jessie), I'm compiling from the git repository.

I'd like to help debug the issue, so if there's anything I can do please tell me After trying to start several (>=20) times it worked only once and then it didn't display an icon (but I think this is a disjoint issue)

This is my output: http://pastebin.com/QSVqisFP

andrew-bibb commented 10 years ago

My sense is that I'll finally figure a work around about the time the QT guys release 5.4 with a totally revamped system tray.

Thank you for the offer of help. I will be posting questions here to XFCE users as I try to work it out. I had an automatic email generated from here (or maybe the Arch Linux AUR) from someone saying that it would not work in MATE. When I logged on, both to here and the AUR I can't find the post so maybe they deleted it, but since the email existed I also installed a test MATE system and the icon is very misbehaved there as well, much worse than on my XFCE test system which does eventually generate the icon.

On XFCE have you turned on the Compositor from the Window Manager Tweaks menu? On my test system the icon shows blank unless the compositor is checked.

DenisNardin commented 10 years ago

I never have composition enabled (I don't like it) so that was probably it. When I enable it it generates the icon some of the times (but not always). The output doesn't change much: sometimes it prints only one "Failed to get a valid icon" line, sometimes it prints up to 12 of them, I don't know the reason of this disparity. The amount of lines seems to be indipendent on whether it eventually succeeds or not.

andrew-bibb commented 10 years ago

More rooting around the internet and I've found a couple of other QT5 projects with similar, if not identical, system tray issues in XFCE and other GTK based system trays. QT5.4 is supposed to have a major rework of the system tray, something having to do with no longer using XEMBED.

Anyway, I did a bunch of reworking of the internals today and the code in GitHub (current master, not latest release) I've moved around and simplified the startup code for the system tray. It is not going to fix the QT/GTK issue, but it starts cleaner. I haven't noticed any difference in the way my XFCE test system starts, but my MATE test system seems to come up with the icon more often than it did before. With the compositor and using --use-xfce start up option I get an icon every time on XFCE. There is no compositor option in MATE, but starting with --use-xfce I get an icon to display maybe 2 out of every 3 times in the MATE system.

I realize far from fixed, but I don't think there is much more I can do until the QT guys come out with an updated version, and then there will probably be a whole new slew of issues to deal with.

andrew-bibb commented 9 years ago

Just tried with the new QT5.4. On my test machine I find that it is no longer necessary to have the window manager compositor checked. Still need the --use-xfce option for it to show up, although now many (but not all) times I'm getting the icon first try.

I've also enabled an extra dbug line in the --use-xfce code block, so if you are starting from a command line and are seeing output you didn't see before (the icon geometry at each try), this is normal.

andrew-bibb commented 9 years ago

I'm going to close this one out now for a couple of reasons. One is I've done as much as I can do with it. The work around for both XFCE and MATE works on my test systems.

Primary reason though is that I have been playing with the new Blueplate system tray client by Trilby and it seems not to work in either XFCE or MATE. Blueplate is a pure C application with no dependencies on external toolkits (QT or GTK). Since this plain, vanilla, C tray client will not work in either of these systems I'm assuming it is a problem with the tray server and not the client programs. In other words an upstream problem which needs to be fixed there. I will however leave the work arounds in the CMST code base for people that need them.

ghost commented 9 years ago

Hello,

I've recently found CMST and I really like it. But I'm hitting this error and is driving me nuts.

I have debian Stretch fully up-to-date (at this time is November 2015). I'm running Enlightenment E19 and use stalonetray as a systray. The version I have for cmst is 2015.09.10.

I've read that this kind of c-pure trays does not work with cmst? is there any other kind of workaround? I do have some qt and kde libs, including breeze and oxygen themes, as I use lots of K apps, but it seems not to use that theme

andrew-bibb commented 9 years ago

Could you do me a favor and open up a new issue on this. I only saw it because I happen to get emails even on closed issues.

I'll look at standalone tray, but one thing I did very recently was fix an issue where the tray icon would not show up in Plasma5. Code in GitHub is current, but I've not done a release with it yet.