transformations: nvidia: Support Xorg server.

* nonguix/transformations.scm (nonguix-transformation-nvidia): Add Xorg server
support via the #:configure-xorg? argument.
This commit is contained in:
Hilton Chain 2026-01-17 11:23:10 +08:00
parent cbb74d61e8
commit 77bf998b18
No known key found for this signature in database
GPG key ID: ACC66D09CA528292

View file

@ -13,6 +13,7 @@
#:use-module (nongnu system linux-initrd) #:use-module (nongnu system linux-initrd)
#:use-module (gnu services) #:use-module (gnu services)
#:use-module (gnu services base) #:use-module (gnu services base)
#:use-module (gnu services xorg)
#:use-module (nongnu services nvidia) #:use-module (nongnu services nvidia)
#:use-module (gnu packages package-management) #:use-module (gnu packages package-management)
#:use-module (nongnu packages linux) #:use-module (nongnu packages linux)
@ -100,6 +101,7 @@ and INITRD (default: microcode-initrd)."
(define* (nonguix-transformation-nvidia #:key (driver nvda) (define* (nonguix-transformation-nvidia #:key (driver nvda)
(kernel-mode-setting? #t) (kernel-mode-setting? #t)
(configure-xorg? #f)
(open-source-kernel-module? #f)) (open-source-kernel-module? #f))
"Return a procedure that transforms an operating system, setting up "Return a procedure that transforms an operating system, setting up
DRIVER (default: nvda) for NVIDIA graphics card. 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 KERNEL-MODE-SETTING? (default: #t) is required for Wayland and rootless Xorg
support. 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 OPEN-SOURCE-KERNEL-MODULE? (default: #f) only supports Turing and later
architectures and is expected to work with 'linux-lts'. 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 (define %presets
`((,nvda . ,(service nvidia-service-type `((,nvda . ,(service nvidia-service-type
(nvidia-configuration (nvidia-configuration
@ -149,5 +155,10 @@ TODO: Xorg configuration."
(leave (leave
(G_ "no NVIDIA service configuration available for '~a'~%") (G_ "no NVIDIA service configuration available for '~a'~%")
(package-name driver))) (package-name driver)))
,@(if configure-xorg?
(list (set-xorg-configuration
(xorg-configuration
(modules (cons driver %default-xorg-modules)))))
'())
,@(operating-system-user-services os)) ,@(operating-system-user-services os))
#:driver driver))))) #:driver driver)))))