summaryrefslogtreecommitdiff
path: root/gnu/services/xorg.scm
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/xorg.scm
parent607fcc75404e2b1fc74affcf372b4a6a789ac55e (diff)
downloadguix-patches-305a732a0a19c5810aab401aa7d70eba02ac386b.tar
guix-patches-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/xorg.scm')
-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