From e32c27dfa950d250520c3c8ecccba90add863639 Mon Sep 17 00:00:00 2001 From: Timothy Sample Date: Wed, 8 May 2019 09:13:14 -0400 Subject: [PATCH] services: gdm: Include user profile in D-Bus paths. This partially addresses . * gnu/services/xorg.scm (dbus-daemon-wrapper): When '$HOME' is set, include directories from '$HOME/.guix-profile' in the search paths of the D-Bus daemon. --- gnu/services/xorg.scm | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index 65e9d48915..027524f11d 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -767,14 +767,24 @@ the GNOME desktop environment.") (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))))) + (program-file + "gdm-dbus-wrapper" + #~(begin + (use-modules (srfi srfi-26)) + (let* ((system-profile "/run/current-system/profile") + (user-profile (and=> (getenv "HOME") + (cut string-append <> "/.guix-profile"))) + (profiles (if user-profile + (list user-profile system-profile) + (list system-profile)))) + (setenv "XDG_CONFIG_DIRS" + (string-join (map (cut string-append <> "/etc/xdg") profiles) + ":")) + (setenv "XDG_DATA_DIRS" + (string-join (map (cut string-append <> "/share") profiles) + ":")) + (apply execl (string-append #$dbus "/bin/dbus-daemon") + (program-arguments)))))) (define-record-type* gdm-configuration make-gdm-configuration -- 2.21.0