No description
  • C 94.5%
  • Python 2%
  • Roff 1.1%
  • Objective-C 1%
  • Meson 0.9%
  • Other 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Enrico Weigelt, metux IT consult 8353a70bba
Some checks failed
Build X servers / xserver-build-ubuntu (push) Has been cancelled
Build X servers / drivers-build-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
hotfix release 25.0.0.25
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-23 16:46:45 +02:00
.github .github: fix XTS build on MacOS 2026-04-17 18:50:03 +02:00
.gitlab-ci .github: switch dependencies to our new mirrors 2025-12-11 15:28:25 +01:00
composite composite: fix potential mem leak in PanoramiXCompositeNameWindowPixmap 2026-04-21 12:19:09 +02:00
config config/udev: guard against NULL subsystem in fallback bus id 2026-07-23 14:30:16 +02:00
damageext damageext: fix wrong REQUEST_SIZE_MATCH type in SProcDamageAdd 2026-04-27 15:25:09 +02:00
dbe Zero out structs to avoid leaking information via padding 2026-04-27 15:16:13 +02:00
dix dix/colormap: fix out-of-bounds read in FindColorInRootCmap 2026-06-05 15:02:12 +02:00
doc Xnamespace: add some documentation 2025-06-12 17:21:48 +02:00
dri3 treewide: remove "lib" prefix in static_library names (meson) 2025-07-03 12:01:52 +02:00
exa exa: silence calloc() warning on mingw32 2025-12-19 12:40:37 +01:00
fb fb/mi/glamor: reject glyphs with negative dimensions 2026-07-22 16:20:02 +02:00
glamor glamor: reject fonts with per-glyph metrics exceeding maxbounds 2026-07-22 16:24:03 +02:00
glx glx: free old context tag before allocating new one in CommonMakeCurrent 2026-07-22 16:17:06 +02:00
hw xquartz: Activate the app via xp_window_activate() in -set_front_process: 2026-07-23 10:44:08 +02:00
include os/auth: prefer getrandom() over arc4random_buf() and /dev/urandom 2026-06-10 15:55:26 +02:00
man Fix minor punctuation error in manual page 2025-08-05 11:47:10 +02:00
mi fb/mi/glamor: reject glyphs with negative dimensions 2026-07-22 16:20:02 +02:00
miext rootless: Protect alpha channel for Render operations 2026-06-08 12:50:51 +02:00
os enhance: popen-fdopen-error-handling 2026-07-22 16:29:11 +02:00
present present: byte-swap notify list in sproc_present_pixmap_synced 2026-06-12 19:01:45 +02:00
pseudoramiX pseudoramiX: add missing byte swapping in various fields 2026-04-28 11:03:03 +02:00
randr randr: call correct handler from SProcRRGetOutputInfo 2026-06-12 19:01:53 +02:00
record record: stop using request length fields 2025-08-05 15:08:28 +02:00
render render: fix memory leaks on XaceHook failure in resource creation 2026-06-05 15:10:32 +02:00
test tests: plug leak of results in compute_expected_damage() 2026-04-18 15:46:31 +02:00
Xext Xext: xtest: fix stack out-of-bounds write in ProcXTestFakeInput 2026-06-12 18:58:56 +02:00
xfixes treewide: remove "lib" prefix in static_library names (meson) 2025-07-03 12:01:52 +02:00
Xi Xi: fix NULL pointer dereference in ProcXQueryDeviceState 2026-06-12 19:00:22 +02:00
xkb xkb: bounds-check indicator index in ReadXkmIndicators 2026-06-12 19:02:01 +02:00
.appveyor.yml appveyor: Add libxcvt build dep 2021-11-04 13:03:25 +00:00
.dir-locals.el .dir-locals.el: Add missing final newline 2019-10-01 17:05:28 +00:00
.git-blame-ignore-revs Ignore the coding style change commit during git blame 2024-12-06 09:55:53 +10:00
.gitignore Clean up the .gitignore file 2024-01-12 00:50:24 +00:00
.gitlab-ci.yml .github: move CI scripts from .gitlab-ci/ to .github/scripts 2025-12-10 18:26:21 +01:00
.mailmap Update mailmap for Peter Harris 2025-04-15 13:49:13 -04:00
.travis.yml travis: Add OSX meson build to matrix 2019-05-02 15:42:58 +00:00
CoC.md it's time to add a CoC (code of conduct) 2025-06-12 17:21:47 +02:00
CODE_OF_CONDUCT.md it's time to add a CoC (code of conduct) 2025-06-12 17:21:47 +02:00
CONTRIBUTING.md CONTRIBUTION.md: "MR" / "MRs" -> pull request(s) 2025-06-27 19:22:18 +02:00
COPYING COPYING: add myself 2025-06-12 17:21:48 +02:00
meson.build hotfix release 25.0.0.25 2026-07-23 16:46:45 +02:00
meson_options.txt meson_options.txt: move xf86-* driver flags to separate section 2025-12-19 12:36:39 +01:00
README.md release/25.0: README.md: update for one year of XLibre 2026-06-15 16:48:24 +02:00
xlibre-server.pc.in xorg-server.pc: add more variables for easier driver builds 2026-01-08 17:17:22 +01:00
xorg-server.m4 xorg-server.m4: add helper macros for driver builds 2026-01-08 17:32:00 +01:00
xorg-server.pc.in xorg-server.pc: add more variables for easier driver builds 2026-01-08 17:17:22 +01:00
xserver.ent.in

XLibre Xserver

The XLibre Xserver is the community-managed display server for the X Window System Protocol Version 11 (Wikipedia), in short, X11.

1 year of XLibre screenshot
One Year of XLibre. See more liberated screens here.

Selected Features

  • All the good things from X.Org Server, including its unreleased features
  • TearFree modesetting by default and optionally atomic modesetting
  • Support for the Nvidia drivers 340, 390, 470, 570, and newer
  • Xnamespace extension for separating X clients
  • Support for seat management via seatd besides systemd-logind
  • Xfbdev, the generic framebuffer Xserver for Linux
  • CI builds for several BSDs, Linux, MacOS, and Microsoft Windows
  • Active community, cleanups, fixes, and development based on merit

To learn more about the features and mission of XLibre, please visit our homepage.

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

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.

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.

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 -logfile /dev/stdout &
_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).

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. To help in testing, you may consider becoming an XLibre Test Driver. Please also have a look at the good first and help wanted issues and the Liberated Screens.

If you want to work on anything, just let us know. If you have any questions, just ask. Thank you!

Contact

XLibre Discussions at GitHub | XLibre mailing list at FreeLists | @x11dev channel at Telegram | #xlibredev space at Matrix | XLibre security contact at GitHub