Ubuntu – what is the difference between “notification area” (systray), “indicator plugin” (indicator) and “status notifier plugin” (statusnotifier)

indicatorxfcexfce-panel

I got mildly annoyed that duplicate wi-fi and bluetooth icons were showing up in my panel, and tracked it down to the fact that they were showing up in both systray and statusnotifier plugins. Can someone explain the differences among them (and also indicator)?

So far I've read that systray has been around forever, that statusnotifier is newer and is somehow blessed by freedesktop (?) and that indicator was written to "address design concerns Canonical was having" (here). Moreover, several things seem to have their own dedicated panel plugins, like "pulseaudio plugin" and "power manager plugin", which seem like they ought to work just fine as elements within either systray or statusnotifier. Why is such a simple aspect of the UI so fractionated? Is there any effort underway toward reunification into a single tray? Is there some semantic distinction among these that I'm missing, that explains why it makes sense to have more than one?

Best Answer

  • Notification area is the classical system tray for X11. It's based on the XEMBED protocol. Due to being X11-specific, it's considered obsolete by many progressive minds who think that Wayland is the future.

  • Status notifier implements the StatusNotifierHost part of the StatusNotifierItem specification. This mechanism is based on D-BUS, which is independent of the windowing system, so it's compatible with X11, Wayland etc..

  • Indicator is a plugin showing status of various messaging apps. This one is not a system tray implementation. It's a specialized type of info display & control. There is some documentation on this system on an Ubuntu Wiki page. From what I could gather there, it uses libindicate to communicate with the applications, and this library, in its turn, uses D-BUS for message passing.

Of these three, the first two seem to be alternatives, so you could use one of them. But in my experience, Notification area shows more complete set of icons from different applications. In particular, if you have some programs which use XEMBED-based tray icons, you need this plugin. See also: "Where are my systray icons?" blog post by a KDE developer (from 2014, when this mess appeared).

The Indicator plugin is needed if you want to have a single place to access messaging apps like e.g. Pidgin or Evolution. By default, in Ubuntu messengers like Pidgin don't show their real tray icons, relying on the presence of the Indicator. If you remove Indicator from the panel, be sure to enable these tray icons in the settings of each messenger you're using.