From 17c626839fb397e8c6f40d2855623f7181d0ab31 Mon Sep 17 00:00:00 2001 From: luhui Date: Sat, 24 Apr 2021 10:56:03 +0800 Subject: [PATCH] services: kmscon: Add xkb-layout and xkb-options fields. * gnu/services/base.scm (): Add xkb-layout and xkb-options fields. * doc/guix.texi (Base Services): Document them. --- doc/guix.texi | 9 +++++++++ gnu/services/base.scm | 13 +++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index b9019d5550..e8007c3965 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -88,6 +88,7 @@ Copyright @copyright{} 2020 John Soo@* Copyright @copyright{} 2020 Jonathan Brielmaier@* Copyright @copyright{} 2020 Edgar Vincent@* Copyright @copyright{} 2021 Maxime Devos@* +Copyright @copyright{} 2021 lu hui@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -15254,6 +15255,14 @@ Font engine used in Kmscon. @item @code{font-size} (default: @code{12}) Font size used in Kmscon. +@item @code{xkb-layout} (default: @code{#f}) +When true, this field be a string used for set keyboard layout used in Kmscon. +See the @code{xkeyboard-config} package for valid layouts. + +@item @code{xkb-options} (default: @code{#f}) +When true, this field be a string used for set keyboard layout options used in +Kmscon. See the @code{xkeyboard-config} package for valid options. + @item @code{kmscon} (default: @var{kmscon}) The Kmscon package to use. diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 24b3ea785b..bee101ab29 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2020 Florian Pelz ;;; Copyright © 2020 Brice Waegeneire ;;; Copyright © 2021 qblade +;;; Copyright © 2021 luhui ;;; ;;; This file is part of GNU Guix. ;;; @@ -2313,7 +2314,11 @@ This service is not part of @var{%base-services}." (font-engine kmscon-configuration-font-engine (default "pango")) (font-size kmscon-configuration-font-size - (default 12))) + (default 12)) + (xkb-layout kmscon-configuration-xkb-layout + (default #f)) ;string | #f + (xkb-options kmscon-configuration-xkb-options + (default #f))) ;string | #f (define kmscon-service-type (shepherd-service-type @@ -2326,7 +2331,9 @@ This service is not part of @var{%base-services}." (auto-login (kmscon-configuration-auto-login config)) (hardware-acceleration? (kmscon-configuration-hardware-acceleration? config)) (font-engine (kmscon-configuration-font-engine config)) - (font-size (kmscon-configuration-font-size config))) + (font-size (kmscon-configuration-font-size config)) + (xkb-layout (kmscon-configuration-xkb-layout config)) + (xkb-options (kmscon-configuration-xkb-options config))) (define kmscon-command #~(list @@ -2335,6 +2342,8 @@ This service is not part of @var{%base-services}." "--no-switchvt" ;Prevent a switch to the virtual terminal. "--font-engine" #$font-engine "--font-size" #$(number->string font-size) + #$@(if xkb-layout (list "--xkb-layout" xkb-layout) '()) + #$@(if xkb-options (list "--xkb-options" xkb-options) '()) #$@(if hardware-acceleration? '("--hwaccel") '()) "--login" "--" #$login-program #$@login-arguments -- 2.31.1