summary refs log tree commit diff
diff options
context:
space:
mode:
authorTimothy Sample <samplet@ngyro.com>2019-02-13 14:22:21 -0500
committerLudovic Courtès <ludo@gnu.org>2019-02-17 00:04:57 +0100
commit41fa9f1815685ede0d3fdc1c561d2a9cf0ffb158 (patch)
tree5c2198f371df0c16c7738073b9af3bdbd73b8cb8
parent7e61419892aa68f7238e50e71f6e69a2e6a53211 (diff)
downloadguix-41fa9f1815685ede0d3fdc1c561d2a9cf0ffb158.tar.gz
services: gdm: Allow for custom X session scripts.
* gnu/packages/gnome.scm (gdm)[arguments]: Update pre-configure phase so
that GDM runs an X session script specified by the variable
GDM_X_SESSION; remove the '--enable-gdm-xsession' configuration
option.
* gnu/services/xorg.scm (<gdm-configuration>): Add 'x-session' field.
(gdm-shepherd-service): Set the GDM_X_SESSION variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--gnu/packages/gnome.scm9
-rw-r--r--gnu/services/xorg.scm7
2 files changed, 10 insertions, 6 deletions
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 @@ libxml2.")
          ;; 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 @@ libxml2.")
             (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 @@ libxml2.")
               (("\"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 @@ makes the good ol' XlockMore usable."
   (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"
@@ -718,6 +720,9 @@ makes the good ol' XlockMore usable."
                             "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 ":"))
                              (map (lambda (path)