There are multiple ways how to bring tray icons back.
The way I use and I would recommend to you is the appindicator-support Gnome extension. There are multiple implementations:
KStatusNotifierItem/AppIndicator Support - The default one and the best way for beginners. It may be already preinstalled on some Linux distributions.
email@example.com - (Outdated for Gnome 40) Patched version of the previous one. It is not distributed in the extensions store so you have to download, extract and place it manually into
~/.local/share/gnome-shell/extensions/. But it offers a lot of configuration options.
Each of these solutions also offers great integration into gnome-shell as it uses default dropdowns.
Another approach to bring tray icons back is TopIcons family of extensions. It all started with (no longer functional today) TopIcons extension.
TopIconsFix - Fixed version of TopIcons. It doesn't provide configuration and icons are too large to look nice. I don't very recommend this one.
TopIcons Plus - (The one on screenshot) This is a good extension. Provides configuration and icons look nice.
TopIcons Redux - Rewritten fork of TopIcons Plus. It may not work in the newest version of Gnome-shell.
Note: Keep in mind you may not be able to get all your tray icons working with TopIcons extensions.
Some programs with non-working tray icons can be fixed by changing the environmental variable
XDG_CURRENT_DESKTOP before launching them. Try to change this variable to
KDE. Test your program with the following commands:
If one of the commands work, you can edit .desktop file of your program in
/usr/share/applications/ to include this environmental variable in
Exec=env XDG_CURRENT_DESKTOP=KDE program
Some users may be looking into a way to customize their tray icons to look united and to match the system icon theme (as on my screenshots above). In that case, take a look at Hardcode-Tray project.