You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The fix is not too clear. I've enabled artful-proposed repository and it's still happening. I've left a message for the upstream maintainers with my test results.
Ok, the ubuntu proposed does fix the invalid string constant "murrine-scrollbar" error, but SystemTray 3.11 still fails to load.
It seems that Gnome 3.26 has changed everything... Nothing I currently have works on it, and it looks list I will have to add a native DBus implementation to support it.
Interesting... And great find. This will make 17.10 compatibility a lot easier.
Since ISVs don't have control over the desktops they deploy to, I'd disagree with this statement. No 3rd party software need to be installed on Mac or Windows for a System Tray to work properly. Using legacy packages is only a stop-gap in my opinion. I hope you feel the same way. <3
Since ISVs don't have control over the desktops they deploy to, ... Using legacy packages is only a stop-gap in my opinion. I hope you feel the same way. <3
I do and I'm really, really hoping a native DBUS implementation solves this problem, because I hate the idea of having an extension to do it...
Some background...
So for some versions of Gnome, Gnome leadership decided to hide all icons by default, and only show them if you press magic key combinations or click on a not-obvious-at-all button at the bottom left of the screen.
Because I couldn't figure out how to get around this restriction showing tray icons using C/C++ (the process is to start with C/C++ and then port the code to Java) I had to resort to using an extension, which the SystemTray runtime will automatically install. Nothing 3rd party, since I maintain the extension and it is only available via the SystemTray (however, it's an extension and I hate having to use it).
The extension installed is very similar to TopIcons, and it was previously excluded from Ubuntu, just because the Ubuntu Gnome implementations were completely different than "official" gnome, even though both report themselves as using gnome.
As a stop-gap solution that will work until (hopefully) a DBUS implementation fixes it, these extensions are sadly the only way I know how to show an icon in the tray area.
Update on the steam menu above... the Actions appear to be part of the .desktop shortcut specification.
[Desktop Entry]Name=Steam
Comment=Application for managing and playing games on Steam
Exec=/usr/bin/steam %U
Icon=steam
Terminal=false
Type=Application
Categories=Network;FileTransfer;Game;MimeType=x-scheme-handler/steam;Actions=Store;Community;Library;Servers;Screenshots;News;Settings;BigPicture;Friends;
And then the executable path and language translations are as follows:
I wanted to offer this information because it was hard to find on the internet and I wanted to clarify that it does not appear to be a solution we can leverage after the application has been started.
Version 3.17 is now released, there is support now for Ubuntu 17.10, 18.04, Fedora 27, 28, 29, and Debian 9.5 (+ all DE's possible from it's installer, so Gnome3, KDE, Xfce, LXDE, and MATE). ElementaryOS 5.0 removed support for tray icons entirely, however a workaround is possible to get them back via some compiled libraries.
@dorkbox FYI, I've found a reasonable way to draw the menu at the task bar using a minimize/restore listener on a 1px x 1px window, wanted to share. (Pure Java, no JNI).
Something you might find useful, is that I have re-written the macos tray to natively support icons in the menu. (See: https://git.dorkbox.com/dorkbox/SystemTray for screenshots). There is still the fallback of AWT, but having icons there as well is a nice improvement. I've also re-written the windows one (to fix scaling bugs) to use JNA as well, but there are some interesting menu position bugs w.r.t. monitor scaling. HiDPI is tricky stuff when the JVM doesn't fully support it. Even IntelliJ struggles with HiDPI scaling bugs on windows, and every three updates seems to be a JVM scaling bug fix.
Newer Java is restricting what APIs can be used with reflection. Java 8, 9, 10 are EOL, so we decided to use this technique.
The state of libappindicator (or lack thereof) has forced us to write our own workaround. As always, feel free to use what you'd like out of out tray source for this project.
Activity
[-]Ubuntu 17.04 Support[/-][+]Ubuntu 17.10 Support[/+]tresf commentedon Nov 28, 2017
Appears to be an upstream issue with Ubuntu 17.10 documented here: https://bugs.launchpad.net/ubuntu/+source/ubuntu-themes/+bug/1723422
The fix is not too clear. I've enabled artful-proposed repository and it's still happening. I've left a message for the upstream maintainers with my test results.Ok, the ubuntu proposed does fix the
invalid string constant "murrine-scrollbar"error, but SystemTray 3.11 still fails to load.dorkbox commentedon Dec 2, 2017
It seems that Gnome 3.26 has changed everything... Nothing I currently have works on it, and it looks list I will have to add a native DBus implementation to support it.
DiWizard commentedon Jan 29, 2018
Ubuntu 17.10 + "TopIcons Plus" extension [ https://extensions.gnome.org/extension/1031/topicons/ ]
SystemTray demo project works well.
dorkbox commentedon Jan 29, 2018
Interesting... And great find. This will make 17.10 compatibility a lot easier.
Thanks!!
tresf commentedon Jan 29, 2018
Since ISVs don't have control over the desktops they deploy to, I'd disagree with this statement. No 3rd party software need to be installed on Mac or Windows for a System Tray to work properly. Using legacy packages is only a stop-gap in my opinion. I hope you feel the same way. <3
dorkbox commentedon Jan 29, 2018
I do and I'm really, really hoping a native DBUS implementation solves this problem, because I hate the idea of having an extension to do it...
Some background...
So for some versions of Gnome, Gnome leadership decided to hide all icons by default, and only show them if you press magic key combinations or click on a not-obvious-at-all button at the bottom left of the screen.
Because I couldn't figure out how to get around this restriction showing tray icons using C/C++ (the process is to start with C/C++ and then port the code to Java) I had to resort to using an extension, which the SystemTray runtime will automatically install. Nothing 3rd party, since I maintain the extension and it is only available via the SystemTray (however, it's an extension and I hate having to use it).
The extension installed is very similar to TopIcons, and it was previously excluded from Ubuntu, just because the Ubuntu Gnome implementations were completely different than "official" gnome, even though both report themselves as using gnome.
As a stop-gap solution that will work until (hopefully) a DBUS implementation fixes it, these extensions are sadly the only way I know how to show an icon in the tray area.
tresf commentedon Apr 3, 2018
@dorkbox what if we leveraged something like Steam does instead... Can Java do this?
tresf commentedon Apr 26, 2018
Update on the steam menu above... the
Actionsappear to be part of the.desktopshortcut specification.And then the executable path and language translations are as follows:
I wanted to offer this information because it was hard to find on the internet and I wanted to clarify that it does not appear to be a solution we can leverage after the application has been started.
dorkbox commentedon Oct 23, 2018
It's now working in Ubuntu 17.10.
note: there are some harmless GLIB warnings now, that I can't seem to get rid of. The test examples work as expected. I will do a release shortly.
dorkbox commentedon Nov 3, 2018
Version 3.17 is now released, there is support now for Ubuntu 17.10, 18.04, Fedora 27, 28, 29, and Debian 9.5 (+ all DE's possible from it's installer, so Gnome3, KDE, Xfce, LXDE, and MATE). ElementaryOS 5.0 removed support for tray icons entirely, however a workaround is possible to get them back via some compiled libraries.
tresf commentedon Feb 5, 2019
@dorkbox FYI, I've found a reasonable way to draw the menu at the task bar using a minimize/restore listener on a 1px x 1px window, wanted to share. (Pure Java, no JNI).

dorkbox commentedon Feb 6, 2019
That is fantastic!
Something you might find useful, is that I have re-written the macos tray to natively support icons in the menu. (See: https://git.dorkbox.com/dorkbox/SystemTray for screenshots). There is still the fallback of AWT, but having icons there as well is a nice improvement. I've also re-written the windows one (to fix scaling bugs) to use JNA as well, but there are some interesting menu position bugs w.r.t. monitor scaling. HiDPI is tricky stuff when the JVM doesn't fully support it. Even IntelliJ struggles with HiDPI scaling bugs on windows, and every three updates seems to be a JVM scaling bug fix.
tresf commentedon Feb 6, 2019
Newer Java is restricting what APIs can be used with reflection. Java 8, 9, 10 are EOL, so we decided to use this technique.
The state of libappindicator (or lack thereof) has forced us to write our own workaround. As always, feel free to use what you'd like out of out tray source for this project.
tresf commentedon Feb 6, 2019
Some notable findings:
.desktopentryStartupWMClass=<App-Name>JFrameshow(...)first, thensetLocation(...)to mouse position immediately.show(...), despite using setLocationSystemTray.dorkbox commentedon Feb 6, 2019
Yes, the inconsistent state of libappindicator is quite frustrating, and your work looks like a great workaround.
Thank you! Do I still have permission to use it under the Apache 2 license?
tresf commentedon Feb 6, 2019
Absolutely. Anything inside the
src\qz\ui\trayfolder can be relicensed Apache 2.