No description
Find a file
2026-01-31 11:30:13 +00:00
patches add xf86-video-ati patch to fix missing comma in configure.ac 2025-12-18 20:32:00 -08:00
.guix-channel use https://git.guix.gnu.org/guix.git as guix channel url 2025-12-18 20:43:03 -08:00
make-xlibre-sources.lisp make-xlibre-sources.scm: update to catch tags that don't match 2025-09-01 13:40:40 -07:00
README.md readme 2025-08-06 21:15:03 -07:00
run-vm run-vm: add --cores optarg 2025-08-02 17:12:37 -07:00
screenshot.png add screenshot 2025-06-22 21:03:20 -07:00
xlibre-source-list.lisp disable xlibre-video-wsfb in source list 2025-09-01 17:39:25 -07:00
xlibre-sources.scm Update xlibre-sources.scm 2026-01-31 11:30:13 +00:00
xlibre.scm Update xlibre.scm 2025-12-31 01:45:07 +00:00

XLibre X11 for GNU Guix

Stable enough to use, but check the "gotchas" and "tested working" sections at the end first.

quick use guide

See this page from the guix manual for how to add this channel to your system.

(cons*
  (channel
    (name 'guix-xlibre)
    (url "https://gitlab.vulnix.sh/spacecadet/guix-xlibre.git"))
  %default-channels)

In config.scm, import the (xlibre) module and change your xorg-configuration to an xlibre-configuration

Usually this is done in the xorg-configuration field of your display manager service. If you use the default %desktop-services, this examples shows how to replace xorg with xlibre. The xlibre-configuration constructor takes any arguments that xorg-configuration does.

(use-modules (xlibre))

...

(operating-system
  ...
  (services
    (modify-services
      %desktop-services
      (gdm-service-type
        config => (gdm-configuration
                    (inherit config)
                    (xorg-configuration
                      (xlibre-configuration))))))

And here's an example for lightdm with some extra modules and a keyboard layout.

(services
  (cons*
    (service lightdm-service-type
             (lightdm-configuration
               (xorg-configuration
                 (xlibre-configuration
                   (modules
                     (cons* xlibre-video-qxl
                            xlibre-input-joystick
                            %default-xlibre-modules))
                   (keyboard-layout "us"))))) ;; replace with your keyboard layout
    (modify-services %desktop-services
                     (delete gdm-service-type))))

If you want to add modules, use %xlibre-default-modules as a base instead of %xorg-default-modules, and instead of the xf86-* modules, use xlibre-* when available, or xf86-*-xlibre when not.

The only package that matches the xf86-*-xlibre scheme is xf86-input-wacom-xlibre, which is a special case since it's maintained by the linuxwacom project. I don't know the best way to manage these names, so I'm just playing it by ear.

After you're done updating your config.scm, reconfigure and reboot. Remember, if you run into any issues booting after reconfigure, you can boot into a previous generation in the GRUB menu!

run-vm

You can test xlibre in a guix vm using the run-vm script in this repo. The following optional arguments will enable their respective Desktop Managers, Desktop Environments, or Window Managers, and all subsequent arguments will be treated as package names to add to the VM. This is an easy way to make sure xlibre will work for your favorite desktops and packages without having to reconfigure your system.

(one of)
--gdm (default)
--lightdm
--sddm
--slim

(any of)
--gnome
--plasma
--enlightenment
--lxqt
--mate
--xfce
--i3

(optional)
--cores=#
--memory=#

The default user/pass is user/user.

guix running i3 on the xlibre xserver

gotchas

  • v86d, tigervnc-server, and tigervnc-client use the package-source from xorg-server, I haven't tested how these work with xlibre source
  • and possibly more, testing needed!
  • kde doesn't work

tested working

  • i3, mate, gnome, xfce
  • slim, sddm, lightdm, gdm
  • amdgpu
  • other drivers probably work, see upstream for more