mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2025-01-19 05:57:04 +01: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 Xinglu Chen@*
|
||||||
Copyright @copyright{} 2021 Raghav Gururajan@*
|
Copyright @copyright{} 2021 Raghav Gururajan@*
|
||||||
Copyright @copyright{} 2021 Domagoj Stolfa@*
|
Copyright @copyright{} 2021 Domagoj Stolfa@*
|
||||||
|
Copyright @copyright{} 2021 Hui Lu@*
|
||||||
|
|
||||||
Permission is granted to copy, distribute and/or modify this document
|
Permission is granted to copy, distribute and/or modify this document
|
||||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
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})
|
@item @code{font-size} (default: @code{12})
|
||||||
Font size used in Kmscon.
|
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})
|
@item @code{kmscon} (default: @var{kmscon})
|
||||||
The Kmscon package to use.
|
The Kmscon package to use.
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
|
;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
|
||||||
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
|
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
|
||||||
;;; Copyright © 2021 qblade <qblade@protonmail.com>
|
;;; Copyright © 2021 qblade <qblade@protonmail.com>
|
||||||
|
;;; Copyright © 2021 Hui Lu <luhuins@163.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; 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 shadow) ; 'user-account', etc.
|
||||||
#:use-module (gnu system uuid)
|
#:use-module (gnu system uuid)
|
||||||
#:use-module (gnu system file-systems) ; 'file-system', etc.
|
#:use-module (gnu system file-systems) ; 'file-system', etc.
|
||||||
|
#:use-module (gnu system keyboard)
|
||||||
#:use-module (gnu system mapped-devices)
|
#:use-module (gnu system mapped-devices)
|
||||||
#:use-module ((gnu system linux-initrd)
|
#:use-module ((gnu system linux-initrd)
|
||||||
#:select (file-system-packages))
|
#:select (file-system-packages))
|
||||||
|
@ -2267,7 +2269,9 @@ (define-record-type* <kmscon-configuration>
|
||||||
(font-engine kmscon-configuration-font-engine
|
(font-engine kmscon-configuration-font-engine
|
||||||
(default "pango"))
|
(default "pango"))
|
||||||
(font-size kmscon-configuration-font-size
|
(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
|
(define kmscon-service-type
|
||||||
(shepherd-service-type
|
(shepherd-service-type
|
||||||
|
@ -2280,7 +2284,8 @@ (define kmscon-service-type
|
||||||
(auto-login (kmscon-configuration-auto-login config))
|
(auto-login (kmscon-configuration-auto-login config))
|
||||||
(hardware-acceleration? (kmscon-configuration-hardware-acceleration? config))
|
(hardware-acceleration? (kmscon-configuration-hardware-acceleration? config))
|
||||||
(font-engine (kmscon-configuration-font-engine 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
|
(define kmscon-command
|
||||||
#~(list
|
#~(list
|
||||||
|
@ -2289,6 +2294,18 @@ (define kmscon-command
|
||||||
"--no-switchvt" ;Prevent a switch to the virtual terminal.
|
"--no-switchvt" ;Prevent a switch to the virtual terminal.
|
||||||
"--font-engine" #$font-engine
|
"--font-engine" #$font-engine
|
||||||
"--font-size" #$(number->string font-size)
|
"--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") '())
|
#$@(if hardware-acceleration? '("--hwaccel") '())
|
||||||
"--login" "--"
|
"--login" "--"
|
||||||
#$login-program #$@login-arguments
|
#$login-program #$@login-arguments
|
||||||
|
|
Loading…
Reference in a new issue