For the longest time now, the dominant display server on the linux desktop is Xorg.
Xorg is roughly the only implementation of the X11 specification.
For a while everything was fine and dandy, a app only had to be compatible with Xorg
for it to be available to all of the linux desktop - as all of the linux desktop was Xorg.
Since Xorg is a project from 1980s legacy supports, historical weight and technical debt accumulated a lot over the years.
It led to the situation where a lot of linux users are familiar with screen tearing as it is such a common problem on Xorg based systems.
But screen tearing, although a very annoying issue that makes your desktop experience insufferable, is not the only issue with Xorg.
Security
Due to Xorgs age, it is not surprising that IT security isnât a big priority on many accounts.
You know how you can just run a hotkey daemon like sxhkd in your terminal?
That is a non-root key-logger and thus a big security hazard right there!
The same thing applies to taking screenshots on Xorg.
Any running process can check on your keyboard input and what is being displayed on the screen.
Another honorable mention of that are screen lockers under Xorg.
Itâs literally just a maximized window that asked for receiving all keyboard input.
If that window crashes somehowâŚâ the computer is "unlocked". Itâs insane.
Programming experience
as a developer of X.Org
side note: three people on this earth understand X input
really wish I wasnât one of them
â Daniel Stone
RedHat (who understandably want to funnel their resources into the future of the Linux desktop which is Wayland) and the lack of willing open source developers on that front has essentially put Xorg on life support / deep maintenance mode. In October 2021 - after 3 years and the longest time period so far without a official release - Xorg 21.1 has been released, officially adding the features of 3 years of development such as the long-wanted support for different refresh rates of monitors. That release also started the GNOME-like version naming convention. I wouldnât expect a lot of development going forward.
The developer experience reflects in the fact that many Xorg developer went on to start the Wayland project.
as a developer of clients
Table 1. Comparing development experience
|
Wayland (Actual documentation)
|
|
|
Have you ever tried to write a small app that talks to the X server directly?
You most likely have given up thinking that you would rather slurp a tennis ball through a straw than to proceed.
That feeling is very human. The X protocol and its extensions are very badly documented.
Many people just end up setting random X properties on their windows that they found out about in some mailing list or forum post from the early 2000s.
Wayland fixes that problem. All wayland documentation you need at the end of the day, is the documentation of the protocols (we will get to that).
These protocols - written in XML - are inherently self-documenting. That allows for a exhaustive and auto-generated documentation of âŚâ everything.
Why not just build a new X11 display server?
So if the Xorg server is such a mess, why did people not go ahead and write a new X11 display server instead of ditching the protocol altogether?
The answer is that the X11 protocol itself also sucks. Problems such as the developer experience and the security issues
are a direct consequence of the protocol and not of the Xorg implementation.
If you think about it, there are actually other implementations of the server-side X11 protocol, such as Xephyr
or Xwayland (which is the compatibility layer between X clients and wayland servers)
but none of which is really a full blown standalone display server such as Xorg.