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
)?
- "notification area" (AKA: systray)
- "status notifier plugin" (AKA: statusnotifier)
- "indicator plugin" (AKA: 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?
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.
"Notification Area" shows some notifications which are not shown in "Status Notifier" and "Indicator", e.g. network connection. So I have to enable it.
Then, comparing the "Status Notifier" and "Indicator": at least one of my apps (Slack) shows up ONLY in Indicator. All other apps show up in both of them. So, I have to use the "Indicator plugin" for this reason.
Enabling the "Status Notifier" just duplicates most (but not all) of the notifications, so I disabled it.
It's confusing to have three of them (it's like in addition to the "windows" on your desktop you also have some "doors" and even "holes").