From e585ec4383a01489f61e65dccbb63e0e446b16bd Mon Sep 17 00:00:00 2001 From: Rutherther Date: Sun, 22 Feb 2026 17:02:57 +0100 Subject: [PATCH] feat: allow usage of Nixpkgs OpenGL programs --- config.scm | 6 +++++- modules/ruther/services/nix-gl.scm | 27 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 modules/ruther/services/nix-gl.scm diff --git a/config.scm b/config.scm index 1a95894e75e1750496b4909ecd5a003d6b03f1d7..6de73416cca517bb176a1572e9fe8b4bda947d1b 100644 --- a/config.scm +++ b/config.scm @@ -22,6 +22,7 @@ (gnu system accounts) (ruther services system) (ruther services bind) + (ruther services nix-gl) (ruther bootloader grub)) (use-service-modules desktop sddm xorg base nix pm virtualization vpn sound dbus cups containers security-token networking @@ -31,7 +32,7 @@ linux embedded finance python-xyz freedesktop python-build haskell-apps commencement polkit firmware databases guile security-token - docker) + docker base) (define wireshark-patched (package/inherit wireshark @@ -277,6 +278,9 @@ (home "/home/fbw")) %default-guix-shared-users)))) + + ;; Let's use GUI apps from Nixpkgs, because, why not? + nixos-opengl-driver-service (service nix-service-type (nix-configuration (extra-config diff --git a/modules/ruther/services/nix-gl.scm b/modules/ruther/services/nix-gl.scm new file mode 100644 index 0000000000000000000000000000000000000000..c768411313befb1c0b71d073f157a44e6ba58edd --- /dev/null +++ b/modules/ruther/services/nix-gl.scm @@ -0,0 +1,27 @@ +(define-module (ruther services nix-gl) + #:use-module (guix gexp) + #:use-module (guix packages) + #:use-module (guix utils) + + #:use-module (gnu packages gl) + + #:use-module (gnu services) + #:use-module (gnu services sysctl) + #:use-module (gnu services configuration)) + +(define-public mesa-w-libglvnd + (package/inherit mesa + (inputs (modify-inputs (package-inputs mesa) + (append libglvnd))) + (arguments + (substitute-keyword-arguments (package-arguments mesa) + ((#:phases phases #~%standard-phases) + #~(modify-phases #$phases + (add-after 'install 'patch-glvnd-json + (lambda _ + (substitute* (string-append #$output "/share/glvnd/egl_vendor.d/50_mesa.json") + (("libEGL_mesa\\.so\\.0") + (string-append #$output "/lib/libEGL_mesa.so.0"))))))))))) + +(define-public nixos-opengl-driver-service + (extra-special-file "/run/opengl-driver" mesa-w-libglvnd))