services: gdm: Include user profile in D-Bus paths.
This partially addresses <https://bugs.gnu.org/35267>. * gnu/services/xorg.scm (dbus-daemon-wrapper): When available, include directories from '~/.guix-profile' in the search paths of the D-Bus daemon.
This commit is contained in:
parent
c087a90e06
commit
dcb3a0fe0a
|
@ -774,14 +774,38 @@ the GNOME desktop environment.")
|
||||||
(shell (file-append shadow "/sbin/nologin")))))
|
(shell (file-append shadow "/sbin/nologin")))))
|
||||||
|
|
||||||
(define dbus-daemon-wrapper
|
(define dbus-daemon-wrapper
|
||||||
(program-file "gdm-dbus-wrapper"
|
(program-file
|
||||||
#~(begin
|
"gdm-dbus-wrapper"
|
||||||
(setenv "XDG_CONFIG_DIRS"
|
#~(begin
|
||||||
"/run/current-system/profile/etc/xdg")
|
(use-modules (srfi srfi-26))
|
||||||
(setenv "XDG_DATA_DIRS"
|
|
||||||
"/run/current-system/profile/share")
|
(define system-profile
|
||||||
(apply execl (string-append #$dbus "/bin/dbus-daemon")
|
"/run/current-system/profile")
|
||||||
(program-arguments)))))
|
|
||||||
|
(define user-profile
|
||||||
|
(and=> (getpw (getuid))
|
||||||
|
(lambda (pw)
|
||||||
|
(string-append (passwd:dir pw) "/.guix-profile"))))
|
||||||
|
|
||||||
|
;; If we are able to find the user's profile, we can add it to
|
||||||
|
;; the search paths set below. We need to do this so that D-Bus
|
||||||
|
;; can start services installed by the user. This allows
|
||||||
|
;; applications that require session D-Bus services (e.g,
|
||||||
|
;; 'evolution') to work even if those services are only available
|
||||||
|
;; in the user's profile. See <https://bugs.gnu.org/35267>.
|
||||||
|
(define 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>
|
(define-record-type* <gdm-configuration>
|
||||||
gdm-configuration make-gdm-configuration
|
gdm-configuration make-gdm-configuration
|
||||||
|
|
Loading…
Reference in New Issue