Reference wayland-server and standard desktop APIs
As it currently stands all the Wayland compositors must provide:
Non-standardized APIs for and implementation of:
- Screen recording and casting
- Querying of the mouse position, keyboard LED state, active window position or name, moving windows (
- Global shortcuts
- System tray
- Input Method support/editor (IME)
- Graphical settings management (i.e. tools like
- Fast user switching/multiple graphical sessions
- Session configuration including but not limited to 1) input devices 2) monitors configuration including refresh rate / resolution / scaling / rotation and power saving 3) global shortcuts
- HDR/deep color support
- VRR (variable refresh rate)
- Disabling input devices (
All these features and APIs are re-implemented again and again by all the Wayland compositors. The existing libraries e.g.
wlrootsonly help so much. Why are we talking about such an atrocious amount of duplication of work and code, and a ton of effort required to debug and make these features work reliably?
This all sounds like too high of a price to pay for ostensibly improved security guaranteed by Wayland. Not a single person however has provided a single proof of X.org's "insecurity" ever having been abused to gain unauthorized access to the user account. To abuse X.org's insecurity model you first need to be able to run applications within the user session and at least Linux users normally don't run random applications from the net.
As it currently stands the Wayland compositor cannot be reloaded or replaced on the fly without taking down all the running graphical applications. Certain Wayland compositors cannot change their settings on the fly and require a full restart which sounds crazy in 2021.
As it currently stands minor WMs and DEs do not even intend to support Wayland given the sheer complexity of writing all the code required to support the above features. You do not expect JWM, TWM, XDM or even IceWM developers to implement all the featured outlined in ^1.
Well-established competing desktop OS'es work exactly this way.
I wonder if Wayland developers could maybe consider writing a reference Wayland server which provided all these features and APIs and only required WMs and DEs to provide very simple window managers which drew window decorations.