summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/services/xorg.scm10
1 files changed, 8 insertions, 2 deletions
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index d0e6c7cd5c..d4e73c13b4 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -707,7 +707,12 @@ makes the good ol' XlockMore usable."
       '()))
 
 (define localed-service-type
-  (let ((package (compose list localed-configuration-localed)))
+  (let ((package (lambda (config)
+                   ;; Don't bother if the user didn't specify any keyboard
+                   ;; layout.
+                   (if (localed-configuration-keyboard-layout config)
+                       (list (localed-configuration-localed config))
+                       '()))))
     (service-type (name 'localed)
                   (extensions
                    (list (service-extension dbus-root-service-type
@@ -720,7 +725,8 @@ makes the good ol' XlockMore usable."
 
                   ;; This service can be extended, typically by the X login
                   ;; manager, to communicate the chosen Xorg keyboard layout.
-                  (compose first)
+                  (compose (lambda (extensions)
+                             (find keyboard-layout? extensions)))
                   (extend (lambda (config keyboard-layout)
                             (localed-configuration
                              (inherit config)