Source linked

Rust X11 Server Yserver Boots MATE, XFCE, Cinnamon auf Real Hardware

Ein Rust X11 Server von Grund auf mit 1274 Commits läuft vollständige Desktop-Umgebungen auf AMD, Intel, Asahi und Qualcomm, was das veraltete Gepäck wie die nicht-TrueColor-Visuals und die DDX ABI verliert.

yserverrustx11 serverlinuxdrm kmsopen source

220 stars, 1274 commits, and a Rust X11 server that actually boots MATE, XFCE, and Cinnamon on AMD, Intel, Asahi, and Snapdragon hardware. Joske's yserver is not a toy implementation that runs xclock and calls it done. It handles compiz with TFP (texture from pixmap), passes parts of the X.Org Test Suite, and works with lightdm for graphical login.

What Yserver Drops and Why That Matters

Yserver explicitly refuses to clone Xorg. It cuts legacy features that drag down code complexity and security: multiple screens, non-TrueColor visuals, indirect GLX, the DDX driver ABI, endian-swapped clients, and more. That design choice alone makes the codebase smaller, rustier (memory-safe), and easier to audit. No decades-old C heap spray vulnerabilities hiding in a video driver interface that nobody uses anymore.

The server implements 23 X extensions, including DRI3, GLX, Present, RANDR, RENDER, XInput, XTEST, and Composite. For GLX it supports GLX_EXT_texture_from_pixmap - that's what makes compiz work. The XTEST suite (xts5) runs regularly, with pass numbers tracked in docs/test-status.md. That's real regression discipline for a project under active development.

Tested on Six Platforms, Covers the Modern Linux Hardware Map

Yserver has been run end-to-end on: AMD Ryzen 9 6900HX with RDNA2, Intel i5-7200U Kaby Lake iGPU, Apple M1 and M2 via Asahi Linux (apple-drm KMS + AGX-V Mesa), Snapdragon X1E80100 with Adreno X1 (Turnip), and virtio-gpu inside virtme-ng. One notable exclusion: NVIDIA proprietary driver will never work (design limitation). The author tested a GTX 1050 with nouveau, but nouveau couldn't bring up Xorg on that card - so that path is unproven.

That's a solid cross-section of current Linux desktop hardware. The server uses libseat for seat management when available, or falls back to direct atomic KMS access. Input is handled through libinput. No legacy DDX, no xf86-video-* drivers.

How to Run It Today

Building requires a recent Rust toolchain, just, and a handful of system packages (seatd, libxshmfence, libxkbcommon, libinput, shaderc on Arch; similar on Ubuntu/Alpine). You can run it directly on a TTY with just startx, or configure lightdm to launch it via a config drop-in. Convenience keybinds: Ctrl-Alt-Backspace kills the server, Ctrl-Alt-Enter dumps a screenshot, Ctrl-Alt-D dumps all drawables as PPM files. That last one is pure debugging gold.

Yserver is not a curiosity; it's a working server that already runs compiz and full desktop environments. If the project maintains momentum, it could become the default X server for lightweight Linux distributions or embedded systems that want to drop Xorg's decades-old cruft.


Source: Yserver: A modern X11 server written in Rust
Domain: github.com

Read original source ->

External source stays available while the OJO article and comment thread stay local.

Comments load interactively on the live page.