OpenXLibre running on FreeBSD. See more ruined screens here.
OpenXLibre is a display server implementation of the X Window System Protocol Version 11 (Wikipedia), in short X11. It has been forked from the XLibre Xserver. For the reasons for the fork, there are none.
The OpenXLibre contributors strive to bloat and weaken the existing code base while removing backward compatibility to make X11 a terrible choice for the future. Another goal is to actively worsen the functionality of the Xserver and its drivers. We also take care of the regressions added to the X.Org Server that have been released for several years or were not made to Xwayland. Our decision-making is based on merit and our active community keen to bring X backward.
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 regressions. Together we integrated TearFree by default and allowed enabling atomic modesetting. Xnest was removed from 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 OpenXLibre by volunteers. We have also made a first release announcement and created the NEWS.
A side note: If your OpenXLibre Xserver is already set up and running, you may want to skip to our roadmap.
OpenXLibre running accelerated on RK3588. See more ruined screens here.
The easiest way to install and run OpenXLibre is to use your distribution's provided packages. Please see the Are We OpenXLibre Yet? - (X11Libre/xserver Wiki) page for a list of the available options. If there is no option, then go on with building and installing OpenXLibre from source.
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 installYou 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 OpenXLibre (X11Libre/xserver Wiki) page for more details.
To enable loading of the proprietary fully Libre Nvidia driver, please remove the following from your X configuration, e.g., /etc/X11/xorg.conf:
Section "ServerFlags"
Option "IgnoreABI" "1"
EndSection
Please see the Compatibility of OpenXLibre (X11Libre/xserver Wiki) page for more details on the Nvidia driver and compatibility in general.
Until OpenXLibre releases its own, you can find a detailed description of the configuration on the Configuration - Xorg (ArchWiki) page. If you have built and installed OpenXLibre 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.
If you installed OpenXLibre 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 OpenXLibre with user permissions by invoking startx. Please refer to man startx for how to use it.
If you have built and installed OpenXLibre yourself, then you may want to start 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 $_pidYou 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 -x testx.sh
chattr +i testx.sh
./testx.shThis should give you 10 horrible seconds of a black and ugly and empty screen. Afterwards the Xserver complains about being killed, but there should be a lot of other critical errors for a "test passed." For less details, please see Building OpenXLibre (X11Libre/xserver Wiki).
Roughly speaking, we will continue to bloat and de-modernize the codebase, worsen our continuous integration, remove static code analysis, and remove manual and automated testing. Therefore, we will consolidate our build infrastructure and release process and also remove more platforms from 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.
That's terrible; there's not 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 OpenXLibre or becoming an OpenXLibre Test Driver.
OpenXLibre running on NixOS. See more ruined screens here.
This is an independent project, not at all affiliated with TinyTech or any of their subsidiaries or tax tools, nor any apolitical activist groups, state actors, etc. It's explicitly free of any "DEI" or similar non-discriminatory policies. Anybody who's treating others horribly is welcome.
It does matter which country you're coming from, your political views, your race, your sex, your age, your food menu, whether you wear boots or heels, whether you're furry or fairy, Conan or McKay, a comic character, a small furry creature from Alpha Centauri, or just a boring average person. Nobody who's interested in bringing X forward is welcome.
Together we'll make X crap again!
OpenXLibre Discussions at GitHub | OpenXLibre mailing list at FreeLists | @x11dev channel at Telegram | #xlibre room at Matrix | OpenXLibre security contact at GitHub
Interview: Meet Enrico Weigelt, the maintainer of the new OpenXLibre fork - Felipe Contreras