AFAIK in X11 there was one http://standards.freedesktop.org/systemtray-spec/systemtray-... . Wayland however doesn't have an API for it yet.
Systray is a wart, abused by too many applications. They should take the android approach, background tasks that cannot have UI and have to communicate with a frontend, which for a change cannot be left hanging in background.
In other words, if you want something in background, make it systemd user service, so the user can use standardized tools to enable/disable/start/stop it. None of that nonsense, where apps keep running after closing all of their windows and resisting to quit (like Skype does).
At the moment I have a metric ton of apps in it (I use pretty much all of them):
* System Volume * CPU/Wi-Fi module temperatures * Clipboard manager * Screenshot manager * Ingress/Egress traffic values (KB per sec) * Current CPU frequency * Battery charge indicator * Network Manager applet which shows Wi-Fi signal strength * Audacious Audio Player * BlueTooth (Blueman) applet * Weather conditions + temperature * Keyboard layout indicator * Time
Remove the system tray from me and my workflow is finished. I will no longer be able to use/manage my devices effectively.
Windows 10 mapped clipboard manager to win-v popup window, works well.
Maybe you live in a 1st world country and earn $15K monthly and you can replace your laptop every month. Good. I can afford one every few years at best.
Win+V works here in XFCE as well only it shows over 35 recent entries as opposed to maybe 5 in Windows 10.
Taking care of something that doesn't need taking care of seems to be a waste of time though. If the computer gets too hot, it'll slow down until it's not by itself.
You might like gkrellm. It handles all those things, but outside the system tray. I used it for decades, and can't find a decent replacement.
As for systemd services. I see tray's role not as a background task runner, but as a way to show tiny GUI elements in unobtrusively.
My desktop is meant for multitasking, I need a lot of stuff opened to keep track of important information, and the systray allows me to glance over it, and know from which program that important notice came from.
No, I don't want to use a dedicated worspace filled with programs. No, I don't want a notification icon that has to be opened so I keep track of things.
A system using systemd for managing which apps can run in the background can be managed by a task/tray-bar or whatever it's called, just as you expect it to. However, their lifecycle would be decided by yourself/the taskbar manager, rather than each application individually.
So in theory, you could expect all applications to work the same, and any application could be minimized to the taskbar or be run at startup, without the program having to offer that functionality in itself.
That would be sufficient if the "standardized tools" provided a similar UI and user feedback for those background tasks. Sure right now I can already have my file synchronization tool run in the background with a systemd service and manually use `journalctl` or `GNOME Logs` to monitor its state, but that's a far inferior user experience than simply having an icon in the corner of my screen which immediately tells me the state of the file synchronization and also allows me to quickly alter its settings.
So as long as those standard background tasks are so tedious to monitor and interact with, I'll keep using the "nonsense" status tray icons.
Most of these services do not want to be managed generically, they want to force themselves on the user. Some sync services need to keep their brand on the screen, after all. Specifically syncing services do not need to hang in notification area, when it is needed to monitor or reconfigure them, it is trivial to launch the controlling app (see syncthing).
Apps like vlc or remmina should bother with systray support at all (they both do, and have it enabled by default).
I want them there, so that's more than enough reason why they need to be there on my systems. No one forces you to have them on your system.
And this has nothing to do with branding nor is it useless noise, because the icon provides valuable information to me. I don't want to have to use `http://localhost:8384/` or `journalctl` every time I want to know:
* Are there some issues which prevent syncing?
* Is a sync in progress (which means I might not want to suspend/poweroff my machine just now)?
* Is syncing paused or idle?
By your logic we should also get rid of status elements like the clock, network, volume, ... because all those information can be monitored and configured with in their respective applications and system settings.