SkillAgentSearch skills...

Xserver

XLibre Xserver

Install / Use

/learn @X11Libre/Xserver

README

XLibre Xserver

<p> <figure><a href="https://github.com/orgs/X11Libre/discussions/211#discussioncomment-13796738"><img src="https://github.com/X11Libre/website/blob/1d16316c0dbcfa5d09531136fb52ed7ad037c9b6/readme/img/xlibre-freebsd.png" alt="XLibre running on FreeBSD"></a><figcaption>XLibre running on FreeBSD. See more <a href="https://github.com/orgs/X11Libre/discussions/211">liberated screens here</a>.</figcaption> </figure> </p>

XLibre is a display server implementation of the X Window System Protocol Version 11 (Wikipedia), in short X11. It has been forked from the X.Org Server (Wikipedia). For the reasons for the fork, please see the HISTORY.md.

Our mission

The XLibre contributors strive to clean up and strengthen the existing code base while maintaining backward compatibility to make X11 a viable choice for the future. Another goal is to actively enhance the functionality of the Xserver and its drivers. We also take care of the improvements to the X.Org Server that have been unreleased for several years or were made to Xwayland only. Our decision-making is based on merit and our active community keen to bring X forward.

Our achievements

Since the fork on June 5, 2025, our by now more than 30 contributors have, e.g., released numerous code cleanups, the Xnamespace extension for separating X clients, and backported the June 2025 X.Org CVE fixes. Together we integrated TearFree by default and allowed enabling atomic modesetting. Xnest was ported to xcb, per-ABI driver directories were introduced, and XQuartz has been added to our build jobs. We have fought through all the issues that have been thrown at us, reached the first stage of the associated workflow, and established our support for packaging XLibre by volunteers. We have also made a first release announcement and created the NEWS.

A side note: If your XLibre Xserver is already set up and running, you may want to skip to our roadmap.

<p> <figure><a href="https://github.com/orgs/X11Libre/discussions/211#discussioncomment-13768576"><img src="https://github.com/X11Libre/website/blob/1d16316c0dbcfa5d09531136fb52ed7ad037c9b6/readme/img/xlibre-rk3588.png" alt="XLibre running accelerated on RK3588"></a><figcaption>XLibre running accelerated on <a href="https://github.com/choushunn/awesome-RK3588">RK3588</a>. See more <a href="https://github.com/orgs/X11Libre/discussions/211">liberated screens here</a>.</figcaption> </figure> </p>

Switching to XLibre

The easiest way to install and run XLibre is to use your distribution's provided packages. Please see the Are We XLibre Yet? - (X11Libre/xserver Wiki) page for a list of the available options. If there is no option, then go on with building and installing XLibre from source.

Building XLibre

After cloning the Xserver repository or unpacking the sources and installing the dependencies, change into the source directory and run the Meson build tool:

cd "<source dir of xserver>"
meson setup <prefix> build <meson_options>
ninja -C build install

You may specify the install <prefix> with, for example, --prefix="$(pwd)/image" and add build time <meson_options> like so: -Dxnest=false. You may also want to build and install some graphics and input drivers. Please refer to the Building XLibre (X11Libre/xserver Wiki) page for more details.

Configuring XLibre

To enable loading of the proprietary Nvidia driver in the XLibre Xserver up to version 25.0.0.15, please add the following to your X configuration, e.g., /etc/X11/xorg.conf:

Section "ServerFlags"
  Option "IgnoreABI" "1"
EndSection

Starting with version 25.0.0.16, the proprietary Nvidia driver is autodetected and handled internally without any special configuration. Please see the Compatibility of XLibre (X11Libre/xserver Wiki) page for more details on the Nvidia driver and compatibility in general.

Until XLibre releases its own, you can find a detailed description of the configuration on the Configuration - Xorg (ArchWiki) page. If you have built and installed XLibre yourself, then change into the <prefix> directory with cd <prefix> and create a directory etc/X11 with a file xorg.conf and adjust it accordingly.

Running XLibre

If you installed XLibre using your distribution's provided packages, then the Xserver is usually started by init (Wikipedia) on system start. On other systems it should be possible to manually start XLibre with user permissions by invoking startx. Please refer to man startx for how to use it.

If you have built and installed XLibre yourself, then you may want to shutdown other Xservers, change into the <prefix> directory, and create a simple testx.sh file with the following contents:

#!/bin/sh
./bin/X :1 vt8 &
_pid=$!
sleep 10 && kill $_pid

You can adjust the :1 vt8 and other options in the testx.sh file as detailed in man Xorg. Make the testx.sh executable and run it:

chmod 0770 testx.sh
./testx.sh

This should give you 10 glorious seconds of a black and beautiful and empty screen. Afterwards the Xserver complains about being killed, but there should be no other critical errors for a "test passed." For more details, please see Building XLibre (X11Libre/xserver Wiki).

Our roadmap

Roughly speaking, we will continue to clean up and modernize the codebase, enhance our continuous integration, add static code analysis, and improve manual and automated testing. Therefore, we will consolidate our build infrastructure and release process and also add more platforms to the test cycle. We will also further look into separating X clients by the Xnamespace extension and providing practical examples of how to use it.

Some of the many ideas and feature requests we received will be refined and prepared for implementation, and we will go on to integrate relevant but unreleased Xorg and Xwayland features as well. Our documentation will see improvements on how to build, configure, and switch to XLibre. A revamp of our website, the creation of a logo, and more rebranding to XLibre are also on the map. End of roughly speaking.

One of the very next steps is to concretize our roadmap by using the GitHub Projects feature to arrange and prioritize bug reports, feature requests, and other issues. This will give anybody a clear picture of what is next. All in the open so you can follow along and, more so, participate.

I want to help!

That's great; there's enough to do for everyone. You may consider one of the many ideas and feature requests out there, like adding static code analysis/coverage, creating a logo for XLibre or becoming an XLibre Test Driver.

There is also a good chance to enhance the documentation of Xnamespace and add more details to the Building XLibre and Graphics devices & drivers wiki pages. Or to update the desktop environments and display managers lists as things work for you.

To wrap things up,

Related Skills

View on GitHub
GitHub Stars4.4k
CategoryDevelopment
Updated8m ago
Forks226

Languages

C

Security Score

80/100

Audited on Mar 30, 2026

No findings