mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-25 05:48:07 -05:00
services: gdm: Make dependencies explicit.
This commit removes the remaining implicit dependencies that the GDM service had on the GNOME Desktop service. * gnu/services/xorg.scm (gdm-configuration): Add a gnome-shell-assets field for specifying any icons or fonts that the GNOME Shell theme needs. (gdm-shepherd-service): Remove environment variables pointing to '/run/current-system' and set XDG_DATA_DIRS so that it points to 'gnome-shell' and its assets. (gdm-service-type): Extend 'profile-service-type' to ensure that necessary fonts are installed in the system profile. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
1f564c1573
commit
7e61419892
1 changed files with 15 additions and 7 deletions
|
@ -28,6 +28,7 @@ (define-module (gnu services xorg)
|
||||||
#:use-module ((gnu packages base) #:select (canonical-package))
|
#:use-module ((gnu packages base) #:select (canonical-package))
|
||||||
#:use-module (gnu packages guile)
|
#:use-module (gnu packages guile)
|
||||||
#:use-module (gnu packages xorg)
|
#:use-module (gnu packages xorg)
|
||||||
|
#:use-module (gnu packages fonts)
|
||||||
#:use-module (gnu packages gl)
|
#:use-module (gnu packages gl)
|
||||||
#:use-module (gnu packages glib)
|
#:use-module (gnu packages glib)
|
||||||
#:use-module (gnu packages display-managers)
|
#:use-module (gnu packages display-managers)
|
||||||
|
@ -642,6 +643,8 @@ (define-record-type* <gdm-configuration>
|
||||||
(auto-login? gdm-configuration-auto-login? (default #f))
|
(auto-login? gdm-configuration-auto-login? (default #f))
|
||||||
(dbus-daemon gdm-configuration-dbus-daemon (default dbus-daemon-wrapper))
|
(dbus-daemon gdm-configuration-dbus-daemon (default dbus-daemon-wrapper))
|
||||||
(default-user gdm-configuration-default-user (default #f))
|
(default-user gdm-configuration-default-user (default #f))
|
||||||
|
(gnome-shell-assets gdm-configuration-gnome-shell-assets
|
||||||
|
(default (list adwaita-icon-theme font-cantarell)))
|
||||||
(x-server gdm-configuration-x-server
|
(x-server gdm-configuration-x-server
|
||||||
(default (xorg-wrapper))))
|
(default (xorg-wrapper))))
|
||||||
|
|
||||||
|
@ -714,13 +717,16 @@ (define (gdm-shepherd-service config)
|
||||||
(string-append
|
(string-append
|
||||||
"GDM_X_SERVER="
|
"GDM_X_SERVER="
|
||||||
#$(gdm-configuration-x-server config))
|
#$(gdm-configuration-x-server config))
|
||||||
;; XXX: GDM requires access to a handful of
|
(string-append
|
||||||
;; programs and components from Gnome (gnome-shell,
|
"XDG_DATA_DIRS="
|
||||||
;; dbus, and gnome-session among others). The
|
((lambda (ls) (string-join ls ":"))
|
||||||
;; following variables only work provided Gnome is
|
(map (lambda (path)
|
||||||
;; installed.
|
(string-append path "/share"))
|
||||||
"XDG_DATA_DIRS=/run/current-system/profile/share"
|
;; XXX: Remove gnome-shell below when GDM
|
||||||
"PATH=/run/current-system/profile/bin"))))
|
;; can depend on GNOME Shell directly.
|
||||||
|
(cons #$gnome-shell
|
||||||
|
'#$(gdm-configuration-gnome-shell-assets
|
||||||
|
config)))))))))
|
||||||
(stop #~(make-kill-destructor))
|
(stop #~(make-kill-destructor))
|
||||||
(respawn? #t))))
|
(respawn? #t))))
|
||||||
|
|
||||||
|
@ -733,6 +739,8 @@ (define gdm-service-type
|
||||||
(const %gdm-accounts))
|
(const %gdm-accounts))
|
||||||
(service-extension pam-root-service-type
|
(service-extension pam-root-service-type
|
||||||
gdm-pam-service)
|
gdm-pam-service)
|
||||||
|
(service-extension profile-service-type
|
||||||
|
gdm-configuration-gnome-shell-assets)
|
||||||
(service-extension dbus-root-service-type
|
(service-extension dbus-root-service-type
|
||||||
(compose list
|
(compose list
|
||||||
gdm-configuration-gdm))))
|
gdm-configuration-gdm))))
|
||||||
|
|
Loading…
Reference in a new issue