~ruther/guix-local

6d4cb99a15da7f4fd55f956c55f4f4aacfcc7742 — Rutherther a month ago 010af50
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>
3 files changed, 19 insertions(+), 18 deletions(-)

M gnu/services/desktop.scm
M gnu/services/xorg.scm
M gnu/system/examples/desktop.tmpl
M gnu/services/desktop.scm => gnu/services/desktop.scm +4 -5
@@ 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))


M gnu/services/xorg.scm => gnu/services/xorg.scm +5 -5
@@ 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

M gnu/system/examples/desktop.tmpl => gnu/system/examples/desktop.tmpl +10 -8
@@ 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.