Display server protocols

Wayland and Xorg are display server protocols in Linux-based operating systems, responsible for drawing user interfaces onto the screen (such as application windows, mouse cursors, images, etc.).

Xorg (X11)

  • Is a traditional display system that has been around for a long time (around the 1980s).

  • Operates on a client-server model:

  • "Server" is Xorg, responsible for drawing everything onto the screen.

  • "Clients" are applications that send requests to Xorg to display content.

  • Allows a lot of flexibility such as remote desktop, supports middleware such as compositors (eg: Compiz, KWin, Mutter…).

  • However, due to its outdated design, it:

  • Poor security (applications can “see” other applications).

  • Lower performance, especially when using modern graphics effects.

Wayland

  • Is a newer, more modern protocol, intended to replace Xorg.

  • Designed to be simpler and more secure, improving performance and reducing latency.

  • There is no intermediate "display server", applications communicate directly with compositors (like Weston, KWin, Mutter, Sway…).

  • Applications cannot “see” or record the content of other applications (higher security).

  • Limitations:

  • Not fully compatible with all older applications written for X11.

  • Some features such as screen sharing, Wacom/tablet support, or multi-GPU support are still being worked on depending on the DE.

When to use which?

Criteria Xorg Wayland
App Compatibility Very High In Progress
Performance & Latency Lower Better
Security Weaker Stronger
Screen Sharing Support Full May be missing depending on version
Older Software Support Good Needs Compatibility Layer (XWayland)

💡 Example: Ubuntu defaults to Wayland, but allows re-selecting Xorg when logging in. DEs like GNOME and KDE Plasma have supported Wayland quite well, while XFCE, LXQt... are still gradually converting.