Something we have been spending some time working on in this cycle has been fixing the mess that is the system tray. This is based upon an awesome specification submitted to Freedesktop by KDE. The spec has been implemented by KDE, we have written an implementation for the GNOME panel and it shipped in Ubuntu 10.04 Lucid Lynx Alpha 2.
This work has a range of benefits:
- Better usability: no more confusing mix of left and right click menu options.
- Multiple indicators can be scrubbed: click once and move your mouse between them instead of having to click multiple times.
- Icons are properly spaced.
- Separate panel icons can be specified which helps improve theming.
- Better KDE and GNOME integration.
I have blogged about this work before, but I had not yet seen the last bullet in action. Here, my friends, is the KDE application Kopete running in GNOME having it’s indicator rendered using GTK menus and respecting GTK icons where appropriate:

Of course, the equivilent happens running GNOME/GTK+ applications in KDE. Rocking!
We have also started adding application indicator support to many of the applications we ship in Ubuntu, and of course these patches are going upstream as they are written. Over the next week or so patches for Brasero, gnome-bluetooth, gnome-control-center, Vino, gnome-disk-utility, and gnome-power-manager will be sent upstream, and we have already sent Nautilus and Rhythmbox patches upstream. We have also seen the community create application indicator patches for Transmission, LottaNZB, Lernid and more.
If you would like to add this rocking support for your app, take a look at this guide and feel free to hang out in #ayatana on Freenode.

Beautiful! I’m always encouraged by seeing strong standards being adopted and implemented. One of the things I hear KDE users complain about is that the application indicators just don’t work when they’ve been programmed with GNOME in mind.
To have a standard that improves the user interface so significantly and automatically enables equal support in both KDE and GNOME is one of those things that makes me excited to use Free Software. This is what makes open standards so powerful.
In general, this is great!
However, I must say that the icon alignment looks soooo out of place. Everywhere else in GNOME, the icons are placed such that the text is aligned. Try clicking on the “Places” menu in the panel, and see how the text is aligned, and then compare that to your screen shot. That is just inconsistent, and it’s not pretty either 🙁
That’s a bug, see the design page for what they are supposed to look like: https://wiki.ubuntu.com/CustomStatusMenuDesignGuidelines
Actually, the spec says this: “Ubuntu status menus save space by using an indentation style different from traditional GTK menus: the leading (e.g. left) edge of the icon, in items with icons, is lined up with the leading edge of the text in items without icons.”
Apparently, in the picture above with Kopete’s application indicator, the Quit item shouldn’t have an icon. The submenu is correct according to the guidelines…
Still doesn’t look too good. I prefer the text being aligned.
Has there been discussions within the GNOME community about these apart from Ubuntu? It seems patching all those applications on your own is a very inefficient way to do things
Wouldn’t it be better to propose such changes (notification system and applet for example) to GNOME directly and work with upstream
Yep, this is an open spec and has been discussed on the FreeDesktop XDG list and the GNOME desktop-devel list.
Also, we are not patching all apps, but are patching apps that are shipped in Ubuntu and contributing those patches upstream. All apps are welcome to the use the framework – see https://wiki.ubuntu.com/DesktopExperienceTeam/ApplicationIndicators for details. 🙂
Has these modules ever been proposed to GNOME? Don’t think so
You seriously think this is not happening?
There is no reason against this, when it is a FreeDesktop spec…
well, there’d be a reason if it was a BAD fdo spec…
In particular, the “have the tray draw the menus instead of having the icons do it themselves” part, which is the part everyone actually likes, is not even part of the KDE/proposed-fdo spec.
Last I checked, the GNOME platform doesn’t accept new modules until GNOME programs actually start using them, right?
So incorporating them into programs before proposing it as a new module seems the appropriate course of action.
When the external dependency window for GNOME opens up we will propose it at that time.
Hi all, reading about all these patches going upstream I wonder how it will affect the next “Ubuntu is not giving back” discussion…?
I love adopting standards and pulling together into the same direction – it frees time and mind for other challenges.
Thanks to all who did work on this!
how is this different to the “notificaton area” already implemented in both gnome and kde?
There’s no visual difference and that’s the point. However, there is now a standard API for it so that any developer can code against the new API and the app will be able to provide indicators irrespective of whether it runs in KDE or Gnome. Up to now, you would have had to code something specific for KDE and something specific for Gnome.
I like the progress very much. One little comment: I think there should be icons on every entry in menu. There is missing icon for “Minimize”, so text get aligned to the right.
The other think I think it could be better is icons in “Set Status” menu. Now I have to read the text, to know which option I should change. If there are more colors like red color for Busy it would be easier to see the option I want to choose from.
I also think there are way too much icons in status bar. I use only top bar (I have removed bottom bar years ago) and so now is so little space for active applications.
Nice!
But, how will systray applets like these behave with gnome-shell? As, if I don’t misremember, gnome-panel won’t be developed more after 2.30…
Thanks for the info 🙂
Awesome, making GNOME and KDE work together is great. Thanks for the work!
It’s nice any progress is made on this, but will I ever live the day when Gtk+ apps will -use OK/Cancel scheme on KDE (That’s really the most annoying thing in gtk+ apps for me) -use kdewallet -use kde dialogs for print and open/save files -some better theming integration between Qt and GTK would also be nice
… AFAIK Qt can mimic gtk+ for themes/file dialogs and Cancel/OK scheme already (maybe not everything is perfect but at least it can) so it would be nice if it also worked the other way around and GTK+ had any KDE integration features.
Of course tray is nice, but it’s just tip of the iceberg. Users should be unable to notice that kde app is an kde when running it in gnome and vice versa.
I would love it if the icons in the menu would align with the menu-icon itself – like the previous poster said.
It would also be nice if the spec supported the new “icon-less” menus in upstream GNOME. (Unless they already do).
Personally, I’ve grown accustomed to menus that don’t have icons all over them, and it would be nice if these didn’t look out of place when you run your menus in iconless mode.
@twighlightomni – icon-less menus isn’t relevant to this specification. It’s an implementation detail – the Gnome applet should respect the Gnome settings, the KDE version should follow KDE settings. It’s not something that belongs in the spec.
Right. I just meant that the applet should take care of that. [I think Ubuntu is upstream for the applet].