AppIndicators in elementary OS

2 minute read

The latest version of elementary OS, 5.0 (codenamed Juno), has been fantastic since its debut back in October 2018. While the overall look and feel is the same as before, many aspects of the OS were further refined and pollished. All-in-all, Juno was a great release, however, like many things elementary, it wasn’t without some bits of controversy.

A notable omission in 5.0 was support for application indicators (perhaps better known as “system tray icons”).

The right side of wingpanel, showing the Pantheon desktop system indicators

elementary OS does still support indicators. System indicators. In other words, indicators intended to give quick information about the state of the system, rather than application-specific indicators.

A lot of people see this as a negative thing. After all, appindicator icons are part of the traditional desktop paradigm, right?

So what? Tradition does not always equal best. I understand that a lot of people like to do things the way they’re used to, but, especially on elementary OS, appindicators just feel out of place to me.

Consider the layout of the Pantheon desktop: You have the wingpanel at the top, with application launcher on the left, date/time in the center, and system indicators on the right. At the bottom, you have the dock, where all of your pinned and currently-running applications are displayed.

An image of my elementary OS desktop

Since your applications are already displayed in the dock… why would you want a separate set of icons up in the top-right, just for extra options of the respective application? If anything, those actions should be accessible by right-clicking an application’s icon in the dock. Native elementary applications support (and encourage) this, as do some third-party apps such as Steam. Having a separate location for these sorts of quick-actions just doesn’t make sense.

Steam's quicklist in the elementary OS dock

The elementary OS Human Interface Guidelines go into this, and how applications should integrate with the system, in much more detail here. It is also discussed in this Github issue.

Unfortunately, while I do believe that the elementary OS approach is better, the biggest problem is that many third-party applications rely on an appindicator for certain actions. So, many of them actually lose functionality on elementary OS.

For me, this isn’t a huge issue. None of the applications that I regularly use suffer much from this, if at all. However, there are quite a few people out there that rely on apps that need appindicator support to function completely. While I would urge people to find alternative applications that don’t rely on it, this isn’t always possible. So if you are in that situation, there are guides available to restore appindicator support in elementary OS Juno, such as this one, or this one. Just remember that doing this is unsupported on elementary, and may lead to issues.

All in all, I’m in favor of elementary OS’s decision to remove appindicator support, and I completely understand their reasoning for doing so. But, I also understand why people are mad about it. This was definitely a controversial decision, but I hope it pays off for elementary in the long run.