mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
services: kmscon: Add keyboard-layout fields.
* gnu/services/base.scm (<kmscon-configuration>): Add keyboard-layout fields. * doc/guix.texi (Base Services): Document them. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
This commit is contained in:
parent
5ed105a8bb
commit
fda0959a14
2 changed files with 28 additions and 2 deletions
|
@ -93,6 +93,7 @@ Copyright @copyright{} 2021 B. Wilson@*
|
|||
Copyright @copyright{} 2021 Xinglu Chen@*
|
||||
Copyright @copyright{} 2021 Raghav Gururajan@*
|
||||
Copyright @copyright{} 2021 Domagoj Stolfa@*
|
||||
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
|
||||
|
@ -15282,6 +15283,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.
|
||||
|
||||
|
|
|
@ -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 @@ (define-module (gnu services base)
|
|||
#: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 @@ (define-record-type* <kmscon-configuration>
|
|||
(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 @@ (define kmscon-service-type
|
|||
(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 @@ (define kmscon-command
|
|||
"--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
|
||||
|
|
Loading…
Reference in a new issue