Nitrokey/nitrokey-app

Gnome 3.26 and the lost system tray

techge opened this issue ยท 19 comments

From version 3.26 the Gnome Project decided to get rid of the system tray as they felt it not useful anymore. https://blogs.gnome.org/aday/2017/08/31/status-icons-and-gnome/

The upcoming Fedora and Ubuntu Releases will already contain this Gnome version. As the Nitrokey App makes use of the standard system tray, we need to find a way to work around. The suggestions of the Gnome Project seem to be more or less "avoid using system trays".

There are ways the get the system tray back, most famous is probably the Gnome extension Topicons Plus. Nitrokey would force user to use such workarounds though which may is not the best user experience.

Another way may could be to reorganize the whole Nitrokey App as a kind of "window based" applications ๐Ÿ˜ข or by using keyboard shortcuts more extensively. Or ... ?

Thank you for heads up!
For now we can mention this extension in the quick start. In the long run a better API will be provided probably (to cover applications like Steam), which we could use. At the moment I see only notifications API to be usable. I though about search API too, though it might be too much work to do and maintain for a cross-platform application. Perhaps this could be done in a plugin.
We surely could display a message when the tray is not detected (link).
The alternative, which is adding main window, could be done too if nothing feasible would be settled in Gnome.
There is a chance too that Canonical will add tray as a default for now. What Ubuntu versions are affected? Is it starting 17.10?

Okay, I checked: Ubuntu 17.10 has Gnome 3.26, but Canonical decided to still keep the system tray. Everythings fine here (and wow looks Nitrokey App nice if you are not using LXDE on ArchLinux ๐Ÿ˜‰).

It looks like Trisquel (Ubuntu based) is not supporting tray icons. It ships with GNOME.
See forum link.

Neither Fedora does. I had to install extension.. So would be nice to find solution for this problem ASAP.

Well, I guess the 'main window' solution if 'no tray' is detected seems the best solution for now?

@ignatenkobrain if you still want to use any other program which use the tray you have to do it anyway :( But still there is another solution needed, of course.

@techge nitrokey-app is the only app which uses tray on my system :P

Did anybody test the Nitrokey App with the upcoming Ubuntu 18.04 (beta)?

I have just tested it with image downloaded from http://cdimage.ubuntu.com/daily-live/current/ (dated
2018-01-29 08:00).
App's tray icon is shown and usable. I do not know have we passed the software freeze date already or not, but I believe Ubuntu team wants the tray dock to stay.
Edit: it is positioned in top-right corner by default and visible immediately (similarly to default icons).
(nevertheless we still plan to integrate with the latest GNOME)
Edit: 18.04 release plan

but I believe Ubuntu team wants the tray dock to stay.

This was my perception as well. They could have removed it in 17.10 already, as it uses Gnome 3.26)
Still true that we have to integrate it in latest GNOME of course

rugk commented

Maybe they just extend the workaround a bit longer. Pre GNOME v3.26 also had such a thing in the bottom left.

As some users are confused by App starting in background anyway:
wouldn't it really best to start the App as window per default and let it go background as system tray (if any) as soon one tries to close the window? There should be a info beforehand of course. This info window may be disabled via a checkbox.

This would solve the problem with Gnome (they expect every applications to have a primary window) on the one hand and help new users to explore the App (and let it minimized optionally afterwards) on the other hand.

Or is there already a decision how this will be handled and I missed it?

Yes, ultimately this is the target. We do not have any main window at the moment, and showing the configuration window would be rather a semi-solution. UI needs to be redesigned but it needs quite a time (not to mention guides' update) and other requested features are as important (like: first-run wizard, PIN reset wizard, in-app firmware update). I think in next releases there will be a movement in that direction. Right now I am searching for any fast and feasible solution for Gnome 3.2.6 (apart from the TopIcons extension), but I do not see any (except maybe Search Provider).

I understand that Gnome's decision to remove the tray is a little odd. But the latest comments on the TopIcons page include such gems as

Also, this extension is no longer being maintained by the developer: phocean/TopIcons-plus#91 At around the same time github repository has been made read-only, so one can't even file new bug reports. In short, this extension is a dead end.

After reading the linked issue, I have to agree with the conclusion and would extend the dead end to include the system tray in general (in Gnome). This is the first time I noticed it's gone, although I have been on 3.26 for quite a while. I run Arch Linux with Gnome, probably not that rare of a setup.

I figured there must be another way to use the nitrokey. I found the two (unofficial, yet officially endorsed/mentioned) CLI projects, gkey and nitrocli. They both are rather lacking in features and the former is also "on hold" apparently. So I ended up installing a standalone tray app (trayer). It barely allows me to finally change my PIN, but the user experience is extremely bad (not a permanent solution).

Again, all this really made me just discover that the system tray is not a thing anymore in Gnome, and I understand that this is odd. I might actually go and experiment with other window managers because of this. Maybe I should also at least test the extension. However, I would like to stress that this issue is a problem that needs solving. I understand that adding a Gnome-only solution is probably not appealing in terms of developer effort. But Gnome does have a lot of users, and I am not sure how long distributors will keep patching in the system tray. Even a (mostly) feature-complete CLI would totally do the job for me. Maybe I should post that comment in Nitrokey/libnitrokey#64 instead, but this issue here is the original reason I fell into this rabbit hole.

Sorry, just wanted to say this because I was a little disappointed by my first few hours with the Nitrokey. On the plus side, the app in AUR, that's just smooth :)

Hi @bitfehler !
I was sure we have a workaround for this issue (mentioned Topicons and distributions' own extensions - e.g. tray on Ubuntu 18.04/GNOME 3.27 works out-of-the-box), hence it was not given higher priority.
@alex-nitrokey: could you check is this the right extension?

It is not about whether is it worth work or not (I use GNOME 3 myself), rather that there is no sufficient time to implement all requested and needed features. Now that the extension is not working in some cases (Arch Linux/Gnome, right?), issue priority needs to be revisited. Perhaps some temporary UI changes will be in place (I was planning to make them in v1.4).
Regarding CLI and other requested features, I encourage to vote with emoticons ๐Ÿ‘ to give a approximate expectations picture.

Thank you for letting now about this.

Hi @bitfehler,
me as a happy Arch Linux user do consider it a rare setup :) just kidding.

Well you are totally right. The mentioned extension is not maintained anymore, as is the extension it was forked from, as is the extension this was forked from...

Still, Ubuntu is using a own extension to make system tray usable for its users. It looks like Canonical does not want to get the shitstorm which may will go to Gnome ;-) That is to say you can use this extension if you don't feel good with a unmaintained extension (which I totally understand).

Please see this post and the extension Ubuntu uses. Does this work for you? If it does, I will change documentation on the website.

As @szszszsz pointed out: we totally see the need to change the way the app is working. But this needs so many changes we, as a rather small company, can not do in short term. I am sorry.

Thank you for your responses. Also, I really hope the comment didn't come across overly critical, I know very well how difficult these things can be. I guess I was a little frustrated in that moment, sorry about that. That said, to the more productive parts:

  • My system is Arch Linux w/ Gnome, currently 3.26.2
  • The TopIcons extensions seems to do absolutely nothing on my system
  • The AppIndicator Support extension sort of works ๐Ÿ˜บ
    • The icon shows briefly when I start the app and plug or unplug the nitrokey, then however disappears
    • Nevertheless, even after the icon disappeared, when the key is plugged in, I can click the area where it would be and get the menu, so it's usable
    • All this doesn't interfere with the rest of the Gnome experience (unlike a standalone systray app), so I'd say it works for me

Not sure what the deal is with the icon disappearing, some sort of Qt/Gtk compatibility issue maybe? Anyways, I guess my main suggestion would be to add some note somewhere so that new users will have an easier time figuring out what's going on. Something like a "Note for Gnome users" link, either on https://www.nitrokey.com/download or maybe even just on the pages for the distros that don't have a solution patched in, e.g. https://www.nitrokey.com/download/arch-linux in this case.

As for myself, I think I can live with the AppIndicator extension for now, especially since I will mostly use the smart card feature and really just wanted to change my PINs. Of course, I will keep looking out for any updates ๐Ÿ˜‰

And, it's great to see that issues are taking seriously and being worked on. Thanks a lot!

Thanks for your feedback! I never felt you are overly critical ๐Ÿ˜‰
I thought I already did a notice to the FAQ, but apparently I didn't. Do you think this would be good point to store this information?
To be honest I am not sure if the Downloads section is really appropriate for this. The GNU/Linux environment is very diverse. I probably had to include it for literally every distro (even on Ubuntu you can use vanilla Gnome).

Main window support is merged to master and will be supported from v1.3 onward. It is shown by default on apllication's run. This should solve this issue.
Please reopen if using the Nitrokey App would still be troublesome on GNOME 3.26.