taffybar / gtk-sni-tray

A StatusNotifierHost widget written using the gtk+3 bindings for haskell provided by gi-gtk.
BSD 3-Clause "New" or "Revised" License
36 stars 2 forks source link

Only Qt programs have icons by default #11

Closed ARR8 closed 6 years ago

ARR8 commented 6 years ago

Some qt programs with icons: Kleopatra, VLC, KDE Connect Indicator, lxqt-powermanagement

Some GTK programs without icons: Syncthing GTK, Onboard, Connman-gtk, volumeicon

Many of the latter programs have no option to change the type of notification icon, e.g. Syncthing GTK

colonelpanic8 commented 6 years ago

@ARR8 Are you sure that those gtk icons provide SNI/Appindicator icons?

It could be that they use XEMBED icons, in which case this would be expected behavior?

You can use XEMBED taffybar system tray, or the separate binary xembedsniproxy to get xembed icons.

ARR8 commented 6 years ago

Onboard, for example, has two settings for "status icon provider:" GtkStatusIcon and AppIndicator. Neither work, nor does autodetect. I don't know whether the first is XEMBED, or which one it's selecting with auto-detect.

colonelpanic8 commented 6 years ago

AppIndicator doesn't work? okay, I'll take a look at that case.

colonelpanic8 commented 6 years ago

@ARR8 Are you making sure to start and leave running a status-notifier-watcher?

Registration of new services is known to be flaky and not well implemented. If you are asking the program to start the host automatically, that could cause issues if it is started after the tray applications are started.

ARR8 commented 6 years ago

I've tested with both configurations, restarting the programs which should have icons before and after.

colonelpanic8 commented 6 years ago

@ARR8 I get an icon for Onboard ATM when I force app indicator.

colonelpanic8 commented 6 years ago

volumeicon is an xembed tray application. shows up for me when using xembedsniproxy

colonelpanic8 commented 6 years ago

I can't get syncthing-gtk to work at all.

conmmann-gtk is also an xembed icon, which again, works for me when i run xembedsniproxy

colonelpanic8 commented 6 years ago

The (themed) onboard icon is all the way on the right: onboard_icon

colonelpanic8 commented 6 years ago

I think this issue basically amounts to some programs use XEMBED. Which is known and expected, so I'm going to close this for now.

ARR8 commented 6 years ago

Forcing appindicator for onboard still does not work for me, but does work with xembedsniproxy. So does syncthing-gtk, as do all the others.

However, those icons are very low-resolution for me, kind of like the chromium-looking icon in your screenshot. I'm not sure if the program is configurable to fix that, but I did not know of its existence when filing these issues, or that there were two kinds of tray icons, so there is a direction for me to troubleshoot, now.

colonelpanic8 commented 6 years ago

Forcing appindicator for onboard still does not work for me, but does work with xembedsniproxy. So does syncthing-gtk, as do all the others.

you might not have the libappindicator headers installed on your machine? I had to recompile onboard with a bunch of stuff in context to make it work.

colonelpanic8 commented 6 years ago

However, those icons are very low-resolution for me, kind of like the chromium-looking icon in your screenshot.

Yes, xembedsniproxy is not a prefect solution. You can always use https://github.com/taffybar/taffybar/blob/master/src/System/Taffybar/Widget/Systray.hs

The problem with that is that it does not play very well with gtk3 and it seems to cause visual glitches for whatever reason.