gnu: %desktop-services: Switch to GDM on 64-bit systems.

* gnu/services/desktop.scm
(desktop-services-for-system): Use gdm on all 64-bit systems.

* gnu/services/xorg.scm (set-xorg-configuration): Adapt to
desktop-services-for-system change.

* gnu/system/examples/desktop.tmpl: Determine the support of Gnome by checking
for supported package.

Fixes: #5388
Change-Id: I0d512a7c31188cea0335e66f00a6d65ae59d09a4
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
This commit is contained in:
Rutherther 2026-01-17 12:28:34 +01:00
parent 010af50497
commit 6d4cb99a15
No known key found for this signature in database
GPG key ID: 0322798269E471C3
3 changed files with 19 additions and 18 deletions

View file

@ -2520,11 +2520,10 @@ applications needing access to be root.")
(%current-system))))
;; List of services typically useful for a "desktop" use case.
;; Since GDM depends on Rust and Rust is not available on all platforms,
;; use SDDM as the fall-back display manager.
;; TODO: Switch the condition to use (supported-package? "rust") and make
;; a news entry about the change.
(cons* (if (string-prefix? "x86_64" system)
;; FIXME: Since GDM depends on more dependencies that do not build on i686,
;; keep SDDM on it for the time being.
;; XXX: When changing login manager, also change set-xorg-configuration
(cons* (if (target-64bit? system)
(service gdm-service-type)
(service sddm-service-type))

View file

@ -1379,14 +1379,14 @@ polkit.addRule(function(action, subject) {
"Run the GNOME Desktop Manager (GDM), a program that allows
you to log in in a graphical session, whether or not you use GNOME."))))
;; Since GDM depends on Rust and Rust is not available on all platforms,
;; use SDDM as the fall-back display manager.
;; TODO: Switch the condition to take into account if Rust is supported and
;; match the configuration in desktop-services-for-system.
;; FIXME: Since GDM depends on more dependencies that do not build on i686,
;; keep SDDM on it for the time being.
;; XXX: When changing this, also change desktop-services-for-system
(define* (set-xorg-configuration config
#:optional
(login-manager-service-type
(if (target-x86-64?)
(if (target-64bit?)
gdm-service-type
sddm-service-type)))
"Tell the log-in manager (of type @var{login-manager-service-type}) to use

View file

@ -3,7 +3,8 @@
;; for a "desktop" setup with GNOME and Xfce where the
;; root partition is encrypted with LUKS, and a swap file.
(use-modules (gnu) (gnu system nss) (guix utils))
(use-modules (gnu) (gnu system nss) (guix utils)
(guix packages))
(use-service-modules desktop sddm xorg)
(use-package-modules gnome)
@ -73,7 +74,10 @@
;; by clicking the gear. Use the "desktop" services, which
;; include the X11 log-in service, networking with
;; NetworkManager, and more.
(services (if (target-x86-64?)
(services (if (supported-package? gnome
(or (and=> (%current-target-system)
gnu-triplet->nix-system)
(%current-system)))
(append (list (service gnome-desktop-service-type)
(service xfce-desktop-service-type)
(set-xorg-configuration
@ -81,16 +85,14 @@
(keyboard-layout keyboard-layout))))
%desktop-services)
;; FIXME: Since GDM depends on Rust (gdm -> gnome-shell -> gjs
;; -> mozjs -> rust) and Rust is currently unavailable on
;; non-x86_64 platforms, we use SDDM and Mate here instead of
;; GNOME and GDM.
;; FIXME: Since Gnome depends on Rust and Rust is currently
;; unavailable on some platforms, we use MATE here instead of
;; GNOME.
(append (list (service mate-desktop-service-type)
(service xfce-desktop-service-type)
(set-xorg-configuration
(xorg-configuration
(keyboard-layout keyboard-layout))
sddm-service-type))
(keyboard-layout keyboard-layout))))
%desktop-services)))
;; Allow resolution of '.local' host names with mDNS.