summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHilton Chain <hako@ultrarare.space>2026-01-17 11:23:10 +0800
committerHilton Chain <hako@ultrarare.space>2026-01-18 16:06:45 +0800
commit77bf998b18e3bbf3f4bba9627bee875d6ffdf926 (patch)
tree9427fc6a7974ee148a154e3c25f33e812b93ae18
parentcbb74d61e8e551806a707de00ecc8524b7620e8d (diff)
transformations: nvidia: Support Xorg server.
* nonguix/transformations.scm (nonguix-transformation-nvidia): Add Xorg server support via the #:configure-xorg? argument.
-rw-r--r--nonguix/transformations.scm15
1 files changed, 13 insertions, 2 deletions
diff --git a/nonguix/transformations.scm b/nonguix/transformations.scm
index fbbbc8d..f31a42c 100644
--- a/nonguix/transformations.scm
+++ b/nonguix/transformations.scm
@@ -13,6 +13,7 @@
#:use-module (nongnu system linux-initrd)
#:use-module (gnu services)
#:use-module (gnu services base)
+ #:use-module (gnu services xorg)
#:use-module (nongnu services nvidia)
#:use-module (gnu packages package-management)
#:use-module (nongnu packages linux)
@@ -100,6 +101,7 @@ and INITRD (default: microcode-initrd)."
(define* (nonguix-transformation-nvidia #:key (driver nvda)
(kernel-mode-setting? #t)
+ (configure-xorg? #f)
(open-source-kernel-module? #f))
"Return a procedure that transforms an operating system, setting up
DRIVER (default: nvda) for NVIDIA graphics card.
@@ -107,12 +109,16 @@ DRIVER (default: nvda) for NVIDIA graphics card.
KERNEL-MODE-SETTING? (default: #t) is required for Wayland and rootless Xorg
support.
+CONFIGURE-XORG? (default: #f) is required for display managers that can start
+the Xorg server (e.g. GDM).
+
OPEN-SOURCE-KERNEL-MODULE? (default: #f) only supports Turing and later
architectures and is expected to work with 'linux-lts'.
-For application setup, use 'replace-mesa'.
+Use 'replace-mesa', for application setup out of the operating system
+declaration.
-TODO: Xorg configuration."
+TODO: Power management."
(define %presets
`((,nvda . ,(service nvidia-service-type
(nvidia-configuration
@@ -149,5 +155,10 @@ TODO: Xorg configuration."
(leave
(G_ "no NVIDIA service configuration available for '~a'~%")
(package-name driver)))
+ ,@(if configure-xorg?
+ (list (set-xorg-configuration
+ (xorg-configuration
+ (modules (cons driver %default-xorg-modules)))))
+ '())
,@(operating-system-user-services os))
#:driver driver)))))