diff options
author | Timothy Sample <samplet@ngyro.com> | 2019-02-13 14:22:19 -0500 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-02-17 00:04:57 +0100 |
commit | 1f564c1573f2d120a55e3b321a0c558a51720bce (patch) | |
tree | 256f30dde170a685ed67258d8d0227bcbf5b5b1f /gnu/services/xorg.scm | |
parent | c9ff92b550f4cb27f07ff093d59fc201ffea7e80 (diff) | |
download | guix-1f564c1573f2d120a55e3b321a0c558a51720bce.tar guix-1f564c1573f2d120a55e3b321a0c558a51720bce.tar.gz |
gnu: gdm: Run dbus-daemon via a wrapper script.
* gnu/packages/gnome.scm (gdm)[arguments]: Modify the pre-configure
phase so that GDM propagates the GDM_DBUS_DAEMON variable into the
session environment and uses its value to invoke dbus-daemon.
* gnu/services/xorg.scm (dbus-daemon-wrapper): New variable.
(<gdm-configuration>): Add 'dbus-daemon' field.
(gdm-shepherd-service): Set GDM_DBUS_DAEMON before invoking gdm.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/services/xorg.scm')
-rw-r--r-- | gnu/services/xorg.scm | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index de5438e3fe..6a589779b9 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -29,6 +29,7 @@ #:use-module (gnu packages guile) #:use-module (gnu packages xorg) #:use-module (gnu packages gl) + #:use-module (gnu packages glib) #:use-module (gnu packages display-managers) #:use-module (gnu packages gnustep) #:use-module (gnu packages gnome) @@ -623,12 +624,23 @@ makes the good ol' XlockMore usable." (home-directory "/var/lib/gdm") (shell (file-append shadow "/sbin/nologin"))))) +(define dbus-daemon-wrapper + (program-file "gdm-dbus-wrapper" + #~(begin + (setenv "XDG_CONFIG_DIRS" + "/run/current-system/profile/etc/xdg") + (setenv "XDG_DATA_DIRS" + "/run/current-system/profile/share") + (apply execl (string-append #$dbus "/bin/dbus-daemon") + (program-arguments))))) + (define-record-type* <gdm-configuration> gdm-configuration make-gdm-configuration gdm-configuration? (gdm gdm-configuration-gdm (default gdm)) (allow-empty-passwords? gdm-configuration-allow-empty-passwords? (default #t)) (auto-login? gdm-configuration-auto-login? (default #f)) + (dbus-daemon gdm-configuration-dbus-daemon (default dbus-daemon-wrapper)) (default-user gdm-configuration-default-user (default #f)) (x-server gdm-configuration-x-server (default (xorg-wrapper)))) @@ -697,6 +709,9 @@ makes the good ol' XlockMore usable." "GDM_CUSTOM_CONF=" #$(gdm-configuration-file config)) (string-append + "GDM_DBUS_DAEMON=" + #$(gdm-configuration-dbus-daemon config)) + (string-append "GDM_X_SERVER=" #$(gdm-configuration-x-server config)) ;; XXX: GDM requires access to a handful of |