summary refs log tree commit diff
path: root/gnu/services
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-04-03 13:55:06 +0200
committerLudovic Courtès <ludo@gnu.org>2019-04-05 15:39:35 +0200
commit305a732a0a19c5810aab401aa7d70eba02ac386b (patch)
tree674483af39ab31c329c8ec3880386b4118e52647 /gnu/services
parent607fcc75404e2b1fc74affcf372b4a6a789ac55e (diff)
downloadguix-305a732a0a19c5810aab401aa7d70eba02ac386b.tar.gz
services: xorg: Add 'set-xorg-configuration'.
* gnu/services/xorg.scm (gdm-service-type)[compose, extend]: New fields.
(set-xorg-configuration): New procedure.
* doc/guix.texi (Keyboard Layout): Use it.
(X Window): Document it.
* gnu/system/examples/desktop.tmpl: Add 'keyboard-layout' fields.
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/xorg.scm22
1 files changed, 21 insertions, 1 deletions
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 7745f9a3cc..26ca0d4f1f 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -99,7 +99,8 @@
 
             gdm-configuration
             gdm-service-type
-            gdm-service))
+            gdm-service
+            set-xorg-configuration))
 
 ;;; Commentary:
 ;;;
@@ -875,6 +876,15 @@ the GNOME desktop environment.")
                                            xorg-configuration-keyboard-layout
                                            gdm-configuration-xorg))))
 
+                ;; For convenience, this service can be extended with an
+                ;; <xorg-configuration> record.  Take the first one that
+                ;; comes.
+                (compose first)
+                (extend (lambda (config xorg-configuration)
+                          (gdm-configuration
+                           (inherit config)
+                           (xorg-configuration xorg-configuration))))
+
                 (default-value (gdm-configuration))
                 (description
                  "Run the GNOME Desktop Manager (GDM), a program that allows
@@ -908,4 +918,14 @@ password."
             (gdm gdm)
             (allow-empty-passwords? allow-empty-passwords?))))
 
+(define* (set-xorg-configuration config
+                                 #:optional
+                                 (login-manager-service-type
+                                  gdm-service-type))
+  "Tell the log-in manager (of type @var{login-manager-service-type}) to use
+@var{config}, an <xorg-configuration> record."
+  (simple-service 'set-xorg-configuration
+                  login-manager-service-type
+                  config))
+
 ;;; xorg.scm ends here