Tray Icons Reloaded: restoring system tray icons on GNOME Shell
GNOME Shell extension which bring back Tray Icons to top panel, with additional features.
At a glance
- What is it?
- Tray Icons Reloaded is a GNOME Shell extension that puts legacy tray icons back in the top panel, with an overflow menu, per-app settings and workarounds for Steam and Wine, but the project states that it is no longer maintained and points users to the AppIndicator extension instead. It suits an Xorg user with a stubborn legacy app, and it is the wrong choice on a current GNOME desktop.
- Who is it for?
- Tray Icons Reloaded fits an Xorg or XWayland GNOME user with one specific legacy application whose tray icon has vanished, since the extension restores the icon and adds workarounds for the cases that make the plain AppIndicator support extension insufficient, such as a left click that fails to open a menu in Steam.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 169 days ago.
- What is it written in?
- Mainly JavaScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
An extension with a status notice above the title
Tray Icons Reloaded is a GNOME Shell extension that brings back Tray Icons to the top panel, with additional features. The project description puts it plainly: a GNOME Shell extension which brings back Tray Icons to the top panel.
But the first thing in the readme is a Status section, and it says the extension is no longer maintained and will not receive updates or support. The recommended alternative is AppIndicator and KStatusNotifierItem Support, linked from the GNOME extensions site.
That ordering is deliberate and worth respecting. An extension that restores a specific piece of missing desktop functionality is the kind of thing that a platform eventually absorbs, and when the platform does absorb it, the extension becomes redundant. Here the recommendation is to the extension that implements the proper AppIndicator and KStatusNotifierItem protocols, which is the mechanism that well-behaved modern applications use.
So the question for anyone evaluating this is narrow: does the recommended alternative fail for a specific application, in a way this extension works around? The readme's feature list gives the answer for at least one case, since it mentions fixing a left click that fails to invoke the menu in some applications such as Steam.
The licence is GPL-3.0, the default branch is master, and the repository publishes no GitHub releases. The last push was on 2026-05-07.
The lineage is documented, which is useful context for anyone porting it or reading its code. The readme credits its evolution from unite-shell by hardpixel, TopIcons Plus by phocean, TopIcons by Adel Gadllah and TopTray by mjnaderi.
The Xorg constraint, and what that means in practice
The compatibility section is short and it is the most important thing in the readme.
The extension only works with Xorg and XWayland. That is not a preference, it is a technical consequence of how the legacy tray works. The old StatusNotifier or systray protocol is an X11-era mechanism, and GNOME Shell's Wayland session does not expose the same notion of a system tray to applications. Under Wayland, an application that wants a tray icon is expected to speak AppIndicator, and the shell extension that implements that support is the one that does the job properly.
The readme also says that AppIndicator and similar extensions are not compatible, and that you should disable them, noting that some distributions ship AppIndicator by default, for example Ubuntu-based ones. So installing this extension can mean turning off another extension, which is a step worth thinking about before you do it.
If you are on Wayland and an application will not run through XWayland, the readme gives a way to force it:
GDK_BACKEND=x11 app_nameThat is a per-invocation environment variable, so you would wrap the offending application rather than change your session.
There is a further suggestion for compatibility trouble: snixembed, which also adds visual native menus. It is a separate tool with its own source, so treating it as a dependency to evaluate rather than a given.
The last line of the compatibility section is the one that ages best: master always targets the current GNOME stable release. Because the extension is not maintained, that statement describes what the code was written against rather than a promise, and a future GNOME release can break it without anyone noticing.
What the settings actually let you change
The Features section describes two things: the overflow behaviour and a set of rich settings that go beyond simply drawing the icon.
Overflow mode is the default when there are more than three items in the tray. So rather than compressing an unbounded number of icons into a sliver of panel, the extension collapses them past a threshold of three, which is the same compromise GNOME Shell makes with its own panel indicators.
The settings list is where the extension earns its place against a plain status icon. There is a fix for left click invoking a menu in some applications, with Steam named as the example. There is fast app killing via SHIFT and a middle mouse click. There is an option for windows to be invoked to the current workspace, which is the default behaviour. There is work with Wine, where left and middle click affect all Wine applications rather than just the one you clicked. And there is the ability to hide selected apps from your tray, which is the feature for the case where an application's icon is not something you want to see at all.
The last one is worth pausing on, because it shows the extension is not only a compatibility shim. Being able to suppress a specific tray icon is a desktop-customisation feature in its own right, and the one that survives the arrival of a proper AppIndicator implementation.
The implementation is small and conventional for a GNOME Shell extension. The repository root holds extension.js as the entry point, AppManager.js, TrayIndicator.js, prefs.js for the preferences window, metadata.json describing the extension, stylesheet.css, a preferences/ directory, a schemas/ directory for GSettings schemas and a makefile. The presence of schemas and a preferences directory is what distinguishes an extension with configurable options from a script that just patches the panel.
Where Tray Icons Reloaded is the wrong choice
The first limitation is the status notice, and it is decisive. The project says the extension is no longer maintained and will not receive updates or support. A GNOME Shell extension is tightly coupled to the shell's internals, and those change with every release. An unmaintained extension works until it does not, and when it breaks there is no fix and no release to pull. The last push was on 2026-05-07 and there are no published releases, so there is also no version history to consult about what changed.
The second is the Xorg requirement, which rules out the extension for anyone running a pure Wayland session, and for anyone whose applications are native Wayland clients with no XWayland fallback. That is a shrinking but real group, and it is the group most likely to be running a current GNOME.
The third is the conflict with AppIndicator support, which some distributions ship by default. The extension needs that other extension disabled, and disabling it can break the tray icons of every other application that behaves correctly. You are trading a general solution for a specific one, and the specific one has to be the only application you actually care about.
The fourth is that this is a workaround rather than a supported configuration. The recommended alternative, AppIndicator and KStatusNotifierItem Support, implements the protocol properly, and an application that shows a tray icon through it is doing the right thing. A fork of the upstream that special-cases Steam's click handling is a patch on top of a patch, and the special case is a workaround for a bug in the application or in its toolkit rather than something the shell can fix properly.
The fifth is the plain functional gap. A tray icon is a small convenience, and the honest assessment of this extension is that it restores a convenience on a configuration that is on its way out. If that convenience is the only thing standing between you and a normal desktop, the migration path is to find out why your specific application is not using AppIndicator.
Editorial conclusion
Tray Icons Reloaded fits an Xorg or XWayland GNOME user with one specific legacy application whose tray icon has vanished, since the extension restores the icon and adds workarounds for the cases that make the plain AppIndicator support extension insufficient, such as a left click that fails to open a menu in Steam. It is the wrong choice for anything else, because the project's own status notice says the extension is no longer maintained and will not receive updates or support, and it recommends AppIndicator and KStatusNotifierItem Support instead. Before installing it, check whether the recommended alternative already handles your application, keep in mind it only works under Xorg and XWayland, and note that the last push was on 2026-05-07 with no GitHub releases published.
Frequently asked questions
Is Tray Icons Reloaded still maintained?
No. The status section at the top of the readme states that the extension is no longer maintained and will not receive updates or support, and it recommends AppIndicator and KStatusNotifierItem Support as the alternative. The last push to the repository was on 2026-05-07.
Does Tray Icons Reloaded work on Wayland?
Only through XWayland. The readme says it only works with Xorg and XWayland, and if an application will not run through XWayland you can force it with the GDK_BACKEND=x11 environment variable set before the application name.
How do I install Tray Icons Reloaded?
Grab it from extensions.gnome.org, or unzip a release into ~/.local/share/gnome-shell/extensions. Note that the AppIndicator and similar extensions are not compatible with it and have to be disabled, and some distributions ship AppIndicator by default.
What extra features does Tray Icons Reloaded provide?
An overflow mode that applies by default when there are more than three tray items, a fix for a left click that fails to invoke a menu in some applications such as Steam, fast app killing with SHIFT and a middle mouse click, invoking windows on the current workspace by default, click handling that works across all Wine applications, and the ability to hide selected apps from the tray.
What licence is Tray Icons Reloaded released under?
GPL-3.0, with the LICENSE file at the root of the repository. The repository publishes no GitHub releases, and the readme credits its lineage to unite-shell by hardpixel, TopIcons Plus by phocean, TopIcons by Adel Gadllah and TopTray by mjnaderi.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/martinpl-tray-icons-reloaded)Was this useful?