From 2729cb406d9f3e9eb22cc660f887138134edb3a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 5 Apr 2020 23:37:33 +0200 Subject: system: Allow for comma-separated keyboard layouts. Reported by Florian Pelz . * gnu/bootloader/grub.scm (keyboard-layout-file): Replace commas with hyphens in the first argument to 'computed-file'. * gnu/system/keyboard.scm (keyboard-layout->console-keymap): Likewise. * doc/guix.texi (Keyboard Layout): Add example. --- doc/guix.texi | 3 +++ gnu/bootloader/grub.scm | 6 +++++- gnu/system/keyboard.scm | 7 +++++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index bc5602474e..67cedaec1b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -11916,6 +11916,9 @@ about. Here are a few example: ;; The Catalan layout. (keyboard-layout "es" "cat") +;; Arabic layout with "Alt-Shift" to switch to US layout. +(keyboard-layout "ar,us" #:options '("grp:alt_shift_toggle")) + ;; The Latin American Spanish layout. In addition, the ;; "Caps Lock" key is used as an additional "Ctrl" key, ;; and the "Menu" key is used as a "Compose" key to enter diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm index 28e6cb1f5f..190b717163 100644 --- a/gnu/bootloader/grub.scm +++ b/gnu/bootloader/grub.scm @@ -240,7 +240,11 @@ the 'share/X11/xkb/symbols/' directory of 'xkeyboard-config'." "-i" #+(keyboard-layout->console-keymap layout) "-o" #$output)))) - (computed-file (string-append "grub-keymap." (keyboard-layout-name layout)) + (computed-file (string-append "grub-keymap." + (string-map (match-lambda + (#\, #\-) + (chr chr)) + (keyboard-layout-name layout))) builder)) (define (grub-setup-io config) diff --git a/gnu/system/keyboard.scm b/gnu/system/keyboard.scm index cd3ab37b27..5bd13a44be 100644 --- a/gnu/system/keyboard.scm +++ b/gnu/system/keyboard.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2019 Ludovic Courtès +;;; Copyright © 2019, 2020 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -94,5 +94,8 @@ Layout information is taken from the XKEYBOARD-CONFIG package." #$(keyboard-layout-name layout)))))) (computed-file (string-append "console-keymap." - (keyboard-layout-name layout)) + (string-map (match-lambda + (#\, #\-) + (chr chr)) + (keyboard-layout-name layout))) build)) -- cgit v1.2.3