diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 794f3a8843..7001a12b19 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5410,10 +5410,6 @@ (define-public gdm ;; service for TTY 1 before starting GDM). "--with-initial-vt=7" - ;; By default, GDM expects distributions to install a custom Xsession - ;; script. It provides a generic one if --enable-gdm-xsession is set. - "--enable-gdm-xsession" - ;; Use '/etc/environment' for locale settings instead of the ;; systemd-specific '/etc/locale.conf'. "--with-lang-file=/etc/environment" @@ -5463,6 +5459,7 @@ (define-public gdm (let ((propagate '("GDM_CUSTOM_CONF" "GDM_DBUS_DAEMON" "GDM_X_SERVER" + "GDM_X_SESSION" ;; XXX: Remove this once GNOME Shell is ;; a dependency of GDM. "XDG_DATA_DIRS"))) @@ -5490,7 +5487,9 @@ (define-public gdm (("\"dbus-daemon\"") "g_getenv (\"GDM_DBUS_DAEMON\")") (("X_SERVER") - "g_getenv (\"GDM_X_SERVER\")")) + "g_getenv (\"GDM_X_SERVER\")") + (("GDMCONFDIR \"/Xsession\"") + "g_getenv (\"GDM_X_SESSION\")")) ;; Use an absolute path for GNOME Session. (substitute* "daemon/gdm-launch-environment.c" (("\"gnome-session\"") diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index 4e6f5ad44f..f7d07b309e 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -646,7 +646,9 @@ (define-record-type* (gnome-shell-assets gdm-configuration-gnome-shell-assets (default (list adwaita-icon-theme font-cantarell))) (x-server gdm-configuration-x-server - (default (xorg-wrapper)))) + (default (xorg-wrapper))) + (x-session gdm-configuration-x-session + (default (xinitrc)))) (define (gdm-configuration-file config) (mixed-text-file "gdm-custom.conf" @@ -717,6 +719,9 @@ (define (gdm-shepherd-service config) (string-append "GDM_X_SERVER=" #$(gdm-configuration-x-server config)) + (string-append + "GDM_X_SESSION=" + #$(gdm-configuration-x-session config)) (string-append "XDG_DATA_DIRS=" ((lambda (ls) (string-join ls ":"))