Phoenix Project Crafts Modern X Server in Zig Language

The Phoenix project is in progress as an endeavor to develop a brand new X server without relying on the advancements of the X.org Server. The main objective is to create a modern alternative that extends the X11 protocol and ensures compatibility with Wayland. While still in the developmental phase, Phoenix is not yet at a stage suitable for everyday use. However, it already enables the management of simple applications utilizing GLX, EGL, or Vulkan for graphics output when Phoenix is nested and operating on top of an existing X server. The code base is crafted in Zig and is distributed under the GPLv3 license, as stated on Git.

As part of the project’s vision, Phoenix does not aim to replicate all the features of the X11 protocol available in X.org Server or support older hardware. For instance, rather than providing comprehensive support for X11 protocol elements related to font handling, the focus is solely on incorporating fundamental functions required by real-world applications. Instead of utilizing traditional X.Org video drivers, Phoenix opts for Linux DRM (Direct Rendering Manager) and Mesa GBM (Generic Buffer Management) for graphics output.

Despite the simplification in functionality, the intention is for common applications to remain compatible with Phoenix, including those designed with GTK2. This streamlined approach not only facilitates implementation but also ensures compatibility with programs developed over the past two decades while guaranteeing operation on hardware not older than 15-20 years.

Regarding enhancements, Phoenix is set to introduce new extensions to the X11 protocol in alignment with modern trends. These include support for HDR, improved multi-monitor configurations (with separate framebuffers for each monitor), monitor-specific DPI settings, flexible monitor refresh rates (VRR), and tearing prevention. Additionally, Phoenix has adopted UTF-8 as the default string encoding, with ISO Latin-1 serving as an alternative only when explicitly specified.

To enhance security measures, applications within Phoenix are isolated by default, necessitating explicit permissions to interact with other windows or access input events. In cases where proper permissions are lacking, empty data will be dispatched in lieu of displaying errors to maintain compatibility with older X11 clients. Furthermore, global key combinations will require modifier key input or individual access authorization.

For applications exclusive to Wayland, the team at Phoenix plans to introduce native support for the protocol or utilize external layers like 2to11 to facilitate seamless operation.

/Reports, release notes, official announcements.