* [bug#47994] [PATCH] services: kmscon: Add xkb-layout and xkb-options fields. @ 2021-04-24 5:37 luhui 2021-04-25 9:12 ` Maxime Devos 0 siblings, 1 reply; 10+ messages in thread From: luhui @ 2021-04-24 5:37 UTC (permalink / raw) To: 47994 [-- Attachment #1: Type: text/plain, Size: 81 bytes --] Added xkb-layout and xkb-options fields to adjust the keyboard layout of kmscon [-- Attachment #2: 0001-services-kmscon-Add-xkb-layout-and-xkb-options-field.patch --] [-- Type: text/plain, Size: 2903 bytes --] From 02ae9ab208f83974eac92dcbeb74091b0670cef7 Mon Sep 17 00:00:00 2001 From: luhui <luhuins@163.com> Date: Sat, 24 Apr 2021 10:56:03 +0800 Subject: [PATCH] services: kmscon: Add xkb-layout and xkb-options fields. * gnu/services/base.scm (<kmscon-configuration>): Add xkb-layout and xkb-options fields. * doc/guix.texi (Base Services): Document them. Signed-off-by: luhui <luhuins@163.com> --- doc/guix.texi | 6 ++++++ gnu/services/base.scm | 12 ++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index b9019d5550..e92c57e84c 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -15254,6 +15254,12 @@ Font engine used in Kmscon. @item @code{font-size} (default: @code{12}) Font size used in Kmscon. +@item @code{xkb-layout} (default: @code{#f}) +Keyboard layout used in Kmscon. + +@item @code{xkb-options} (default: @code{#f}) +Keyboard layout options used in Kmscon. + @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..2c442416b7 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -2313,7 +2313,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)) + (xkb-options kmscon-configuration-xkb-options + (default #f))) (define kmscon-service-type (shepherd-service-type @@ -2326,7 +2330,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 +2341,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 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#47994] [PATCH] services: kmscon: Add xkb-layout and xkb-options fields. 2021-04-24 5:37 [bug#47994] [PATCH] services: kmscon: Add xkb-layout and xkb-options fields luhui @ 2021-04-25 9:12 ` Maxime Devos 2021-04-25 10:04 ` luhui 0 siblings, 1 reply; 10+ messages in thread From: Maxime Devos @ 2021-04-25 9:12 UTC (permalink / raw) To: luhui, 47994 [-- Attachment #1: Type: text/plain, Size: 975 bytes --] luhui schreef op za 24-04-2021 om 13:37 [+0800]: > @item @code{xkb-layout} (default: @code{#f}) > Keyboard layout used in Kmscon. What is the default here, is this a package object, a file-like object, a string, where can I find a list of keyboard layouts ... please document! > @item @code{xkb-options} (default: @code{#f}) > Keyboard layout options used in Kmscon. What are the possible options, is this a list, a string, a list of strings, ... please document! > Signed-off-by: luhui <luhuins@163.com> Guix uses Signed-off-by differently from LKML. IIUC, Signed-off-by is used when committing on behalf of someone else, and is added by the committer. The line would be something like Signed-off-by: Some Guix Committer <mail@example.org> As you added a few things to doc/guix.texi and gnu/services/base.scm, you can add a copyright line there. Otherwise, I don't see any obvious problems, but I haven't tested. Greetings, Maxime. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 260 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* [bug#47994] [PATCH] services: kmscon: Add xkb-layout and xkb-options fields. 2021-04-25 9:12 ` Maxime Devos @ 2021-04-25 10:04 ` luhui 2021-04-25 12:46 ` Maxime Devos 0 siblings, 1 reply; 10+ messages in thread From: luhui @ 2021-04-25 10:04 UTC (permalink / raw) To: Maxime Devos; +Cc: 47994, luhui [-- Attachment #1: Type: text/plain, Size: 15 bytes --] ok, new patch: [-- Attachment #2: 0001-services-kmscon-Add-xkb-layout-and-xkb-options-field.patch --] [-- Type: text/plain, Size: 3772 bytes --] From 17c626839fb397e8c6f40d2855623f7181d0ab31 Mon Sep 17 00:00:00 2001 From: luhui <luhuins@163.com> Date: Sat, 24 Apr 2021 10:56:03 +0800 Subject: [PATCH] services: kmscon: Add xkb-layout and xkb-options fields. * gnu/services/base.scm (<kmscon-configuration>): 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 <pelzflorian@pelzflorian.de> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2021 qblade <qblade@protonmail.com> +;;; Copyright © 2021 luhui <luhuins@163.com> ;;; ;;; 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 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#47994] [PATCH] services: kmscon: Add xkb-layout and xkb-options fields. 2021-04-25 10:04 ` luhui @ 2021-04-25 12:46 ` Maxime Devos 2021-04-26 2:07 ` luhui 0 siblings, 1 reply; 10+ messages in thread From: Maxime Devos @ 2021-04-25 12:46 UTC (permalink / raw) To: luhui; +Cc: 47994 [-- Attachment #1: Type: text/plain, Size: 2529 bytes --] luhui schreef op zo 25-04-2021 om 18:04 [+0800]: > +@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. I looked in the guix manual for ideas how to formulate this clearer. The section ‘10.6 Keyboard layout’ (<https://guix.gnu.org/manual/en/html_node/Keyboard-Layout.html#Keyboard-Layout>) seems interesting, in particualr the "keyboard-layout" procedure from (gnu system keyboard). It seemed a nicer abstraction than just raw strings. An extract from the manual: Keyboard layouts are represented by records created by the ‘keyboard-layout’ procedure of ‘(gnu system keyboard)’. Following the X Keyboard extension (XKB), each layout has four attributes: a name (often a language code such as “fi” for Finnish or “jp” for Japanese), an optional variant name, an optional keyboard model name, and a possibly empty list of additional options. In most cases the layout name is all you care about. -- Scheme Procedure: keyboard-layout NAME [VARIANT] [#:model] [#:options '()] Return a new keyboard layout with the given NAME and VARIANT. NAME must be a string such as ‘"fr"’; VARIANT must be a string such as ‘"bepo"’ or ‘"nodeadkeys"’. See the ‘xkeyboard-config’ package for valid options. Here are a few examples: ;; The German QWERTZ layout. Here we assume a standard ;; "pc105" keyboard model. (keyboard-layout "de") ;; The bépo variant of the French layout. (keyboard-layout "fr" "bepo") Could this be used instead of raw strings? > +When true, this field be a string used for set keyboard layout used in Kmscon. When true, this field is a string representing the name of the keyboard layout. Suggested documentation (based on the xorg-configuration documentation): @item @code{keboard-layout} (default: @code{#f}) If this is false, Kmscon uses the default keyboard layout. Otherwise this must be a field is a ‘keyboard layout’ object specifying the keyboard layout to use for the console. *Note Keyboard Layout::, for more information on how to specify the keyboard layout. Greetings, Maxime. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 260 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* [bug#47994] [PATCH] services: kmscon: Add xkb-layout and xkb-options fields. 2021-04-25 12:46 ` Maxime Devos @ 2021-04-26 2:07 ` luhui 2021-04-26 19:23 ` Maxime Devos 2021-06-04 12:40 ` Mathieu Othacehe 0 siblings, 2 replies; 10+ messages in thread From: luhui @ 2021-04-26 2:07 UTC (permalink / raw) To: Maxime Devos; +Cc: 47994, luhui [-- Attachment #1: Type: text/plain, Size: 66 bytes --] OK,Re-written the code according to your suggestion. new patch: [-- Attachment #2: 0001-services-kmscon-Add-keyboard-layout-fields.patch --] [-- Type: text/plain, Size: 4514 bytes --] From 49450d3f87bebb0eeb5a2d4a161151b33d413c15 Mon Sep 17 00:00:00 2001 From: luhui <luhuins@163.com> Date: Sat, 24 Apr 2021 10:56:03 +0800 Subject: [PATCH] services: kmscon: Add keyboard-layout fields. * gnu/services/base.scm (<kmscon-configuration>): Add keyboard-layout fields. * doc/guix.texi (Base Services): Document it. --- doc/guix.texi | 9 +++++++++ gnu/services/base.scm | 21 +++++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index b9019d5550..74e9ceaf5e 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{keyboard-layout} (default: @code{#f}) +If this is @code{#f}, Kmscon uses the default keyboard layout---usually US +English (``qwerty'') for a 105-key PC keyboard. + +Otherwise this must be a @code{keyboard-layout} object specifying the keyboard +layout. @xref{Keyboard Layout}, for more information on how to specify the +keyboard layout. + @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..0878746fa8 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2021 qblade <qblade@protonmail.com> +;;; Copyright © 2021 luhui <luhuins@163.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,6 +42,7 @@ #:use-module (gnu system shadow) ; 'user-account', etc. #:use-module (gnu system uuid) #:use-module (gnu system file-systems) ; 'file-system', etc. + #:use-module (gnu system keyboard) #:use-module (gnu system mapped-devices) #:use-module ((gnu system linux-initrd) #:select (file-system-packages)) @@ -2313,7 +2315,9 @@ 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)) + (keyboard-layout kmscon-configuration-keyboard-layout + (default #f))) ; #f | <keyboard-layout> (define kmscon-service-type (shepherd-service-type @@ -2326,7 +2330,8 @@ 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)) + (keyboard-layout (kmscon-configuration-keyboard-layout config))) (define kmscon-command #~(list @@ -2335,6 +2340,18 @@ 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 keyboard-layout + (let* ((layout (keyboard-layout-name keyboard-layout)) + (variant (keyboard-layout-variant keyboard-layout)) + (model (keyboard-layout-model keyboard-layout)) + (options (keyboard-layout-options keyboard-layout))) + `("--xkb-layout" ,layout + ,@(if variant `("--xkb-layout" ,variant) '()) + ,@(if model `("--xkb-model" ,model) '()) + ,@(if (null? options) + '() + `("--xkb-options" ,(string-join options ","))))) + '()) #$@(if hardware-acceleration? '("--hwaccel") '()) "--login" "--" #$login-program #$@login-arguments -- 2.31.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [bug#47994] [PATCH] services: kmscon: Add xkb-layout and xkb-options fields. 2021-04-26 2:07 ` luhui @ 2021-04-26 19:23 ` Maxime Devos 2021-05-04 11:32 ` luhui 2021-06-04 12:40 ` Mathieu Othacehe 1 sibling, 1 reply; 10+ messages in thread From: Maxime Devos @ 2021-04-26 19:23 UTC (permalink / raw) To: luhui; +Cc: 47994 [-- Attachment #1: Type: text/plain, Size: 207 bytes --] luhui schreef op ma 26-04-2021 om 10:07 [+0800]: > OK,Re-written the code according to your suggestion. > > new patch: The new patch looks good to me, but I haven't tested it. Greetings, Maxime. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 260 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* [bug#47994] [PATCH] services: kmscon: Add xkb-layout and xkb-options fields. 2021-04-26 19:23 ` Maxime Devos @ 2021-05-04 11:32 ` luhui 0 siblings, 0 replies; 10+ messages in thread From: luhui @ 2021-05-04 11:32 UTC (permalink / raw) To: Maxime Devos; +Cc: 47994, luhui On Mon, Apr 26, 2021 at 09:23:00PM +0200, Maxime Devos wrote: > luhui schreef op ma 26-04-2021 om 10:07 [+0800]: > > OK,Re-written the code according to your suggestion. > > > > new patch: > > The new patch looks good to me, but I haven't tested it. write it in a vm configuration test code: #+BEGIN_SRC scheme ;; need delete getty service (tty3,tty4,tty5,tty6) (dbus-service) (syslog-service) ;; default (service kmscon-service-type (kmscon-configuration (virtual-terminal "tty3"))) ;; us (service kmscon-service-type (kmscon-configuration (virtual-terminal "tty4") (keyboard-layout (keyboard-layout "us")))) ;; us with ctrl:nocaps options (service kmscon-service-type (kmscon-configuration (virtual-terminal "tty5") (keyboard-layout (keyboard-layout "us" #:options '("ctrl:nocaps"))))) ;; with all args (service kmscon-service-type (kmscon-configuration (virtual-terminal "tty6") (keyboard-layout (keyboard-layout "us" "intl" #:model "macbook78" #:options '("ctrl:nocaps" "compose:menu"))))) #+END_SRC then guix system vm vm-configuration.scm xxxxxxxxxx-vm.sh # need graphic in vm: herd status # ensure services is running # test Ctrl + Alt + F3 # ensure it is us keyboard layout Ctrl + Alt + F4 # ensure it is us keyboard layout Ctrl + Alt + F5 # ensure Caps Locks is Ctrl ... ^ permalink raw reply [flat|nested] 10+ messages in thread
* [bug#47994] [PATCH] services: kmscon: Add xkb-layout and xkb-options fields. 2021-04-26 2:07 ` luhui 2021-04-26 19:23 ` Maxime Devos @ 2021-06-04 12:40 ` Mathieu Othacehe 2021-06-21 15:28 ` luhui 1 sibling, 1 reply; 10+ messages in thread From: Mathieu Othacehe @ 2021-06-04 12:40 UTC (permalink / raw) To: luhui; +Cc: 47994, Maxime Devos Hello, > + ,@(if variant `("--xkb-layout" ,variant) '()) This is supposed to be "--xkb-variant" here, right? Otherwise, it looks good to me. Thanks, Mathieu ^ permalink raw reply [flat|nested] 10+ messages in thread
* [bug#47994] [PATCH] services: kmscon: Add xkb-layout and xkb-options fields. 2021-06-04 12:40 ` Mathieu Othacehe @ 2021-06-21 15:28 ` luhui 2021-06-29 17:02 ` bug#47994: " Mathieu Othacehe 0 siblings, 1 reply; 10+ messages in thread From: luhui @ 2021-06-21 15:28 UTC (permalink / raw) To: Mathieu Othacehe; +Cc: 47994, luhui, Maxime Devos [-- Attachment #1: Type: text/plain, Size: 339 bytes --] On Fri, Jun 04, 2021 at 02:40:21PM +0200, Mathieu Othacehe wrote: > > Hello, > > > + ,@(if variant `("--xkb-layout" ,variant) '()) > > This is supposed to be "--xkb-variant" here, right? Sorry, made this mistake, now I fixed it and sent a new patch. > > Otherwise, it looks good to me. > > Thanks, > > Mathieu [-- Attachment #2: 0001-services-kmscon-Add-keyboard-layout-fields.patch --] [-- Type: text/plain, Size: 4564 bytes --] From 310ff049da9e6ea7f0556430b0b51580a675d696 Mon Sep 17 00:00:00 2001 From: luhui <luhuins@163.com> Date: Mon, 21 Jun 2021 22:58:06 +0800 Subject: [PATCH] services: kmscon: Add keyboard-layout fields. * gnu/services/base.scm (<kmscon-configuration>): Add keyboard-layout fields. * doc/guix.texi (Base Services): Document it. --- doc/guix.texi | 9 +++++++++ gnu/services/base.scm | 21 +++++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 66c6adc4f5..eb151a56fb 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -91,6 +91,7 @@ Copyright @copyright{} 2020 Edgar Vincent@* Copyright @copyright{} 2021 Maxime Devos@* Copyright @copyright{} 2021 B. Wilson@* Copyright @copyright{} 2021 Xinglu Chen@* +Copyright @copyright{} 2021 Hui Lu@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -15280,6 +15281,14 @@ Font engine used in Kmscon. @item @code{font-size} (default: @code{12}) Font size used in Kmscon. +@item @code{keyboard-layout} (default: @code{#f}) +If this is @code{#f}, Kmscon uses the default keyboard layout---usually US +English (``qwerty'') for a 105-key PC keyboard. + +Otherwise this must be a @code{keyboard-layout} object specifying the keyboard +layout. @xref{Keyboard Layout}, for more information on how to specify the +keyboard layout. + @item @code{kmscon} (default: @var{kmscon}) The Kmscon package to use. diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 3be2e984c3..6922d7f90b 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2021 qblade <qblade@protonmail.com> +;;; Copyright © 2021 Hui Lu <luhuins@163.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,6 +42,7 @@ #:use-module (gnu system shadow) ; 'user-account', etc. #:use-module (gnu system uuid) #:use-module (gnu system file-systems) ; 'file-system', etc. + #:use-module (gnu system keyboard) #:use-module (gnu system mapped-devices) #:use-module ((gnu system linux-initrd) #:select (file-system-packages)) @@ -2267,7 +2269,9 @@ notably to select, copy, and paste text. The default options use the (font-engine kmscon-configuration-font-engine (default "pango")) (font-size kmscon-configuration-font-size - (default 12))) + (default 12)) + (keyboard-layout kmscon-configuration-keyboard-layout + (default #f))) ; #f | <keyboard-layout> (define kmscon-service-type (shepherd-service-type @@ -2280,7 +2284,8 @@ notably to select, copy, and paste text. The default options use the (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)) + (keyboard-layout (kmscon-configuration-keyboard-layout config))) (define kmscon-command #~(list @@ -2289,6 +2294,18 @@ notably to select, copy, and paste text. The default options use the "--no-switchvt" ;Prevent a switch to the virtual terminal. "--font-engine" #$font-engine "--font-size" #$(number->string font-size) + #$@(if keyboard-layout + (let* ((layout (keyboard-layout-name keyboard-layout)) + (variant (keyboard-layout-variant keyboard-layout)) + (model (keyboard-layout-model keyboard-layout)) + (options (keyboard-layout-options keyboard-layout))) + `("--xkb-layout" ,layout + ,@(if variant `("--xkb-variant" ,variant) '()) + ,@(if model `("--xkb-model" ,model) '()) + ,@(if (null? options) + '() + `("--xkb-options" ,(string-join options ","))))) + '()) #$@(if hardware-acceleration? '("--hwaccel") '()) "--login" "--" #$login-program #$@login-arguments -- 2.32.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* bug#47994: [PATCH] services: kmscon: Add xkb-layout and xkb-options fields. 2021-06-21 15:28 ` luhui @ 2021-06-29 17:02 ` Mathieu Othacehe 0 siblings, 0 replies; 10+ messages in thread From: Mathieu Othacehe @ 2021-06-29 17:02 UTC (permalink / raw) To: luhui; +Cc: 47994-done, Maxime Devos Hey, > Sorry, made this mistake, now I fixed it and sent a new patch. Pushed with minor edits, Thanks, Mathieu ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2021-06-29 17:03 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-04-24 5:37 [bug#47994] [PATCH] services: kmscon: Add xkb-layout and xkb-options fields luhui 2021-04-25 9:12 ` Maxime Devos 2021-04-25 10:04 ` luhui 2021-04-25 12:46 ` Maxime Devos 2021-04-26 2:07 ` luhui 2021-04-26 19:23 ` Maxime Devos 2021-05-04 11:32 ` luhui 2021-06-04 12:40 ` Mathieu Othacehe 2021-06-21 15:28 ` luhui 2021-06-29 17:02 ` bug#47994: " Mathieu Othacehe
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).