guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/05: installer: Set the system's 'keyboard-layout' field.


From: guix-commits
Subject: 02/05: installer: Set the system's 'keyboard-layout' field.
Date: Mon, 25 Mar 2019 18:37:16 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 3191b5f6ba5ebbb59a7448facd999ad7f7aeae79
Author: Ludovic Courtès <address@hidden>
Date:   Mon Mar 25 23:21:08 2019 +0100

    installer: Set the system's 'keyboard-layout' field.
    
    * gnu/installer/newt/keymap.scm (keyboard-layout->configuration): New
    procedure.
    * gnu/installer.scm (compute-keymap-step): Return RESULT.
    (installer-steps) <'keymap>: Add 'configuration-formatter' field.
    (installer-program): Use (gnu installer newt keymap).
    * gnu/installer/parted.scm (bootloader-configuration): Set
    'keyboard-layout'.
---
 gnu/installer.scm             |  9 +++++++--
 gnu/installer/newt/keymap.scm | 13 ++++++++++++-
 gnu/installer/parted.scm      |  6 +++++-
 3 files changed, 24 insertions(+), 4 deletions(-)

diff --git a/gnu/installer.scm b/gnu/installer.scm
index 479d940..02f26ee 100644
--- a/gnu/installer.scm
+++ b/gnu/installer.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Mathieu Othacehe <address@hidden>
+;;; Copyright © 2019 Ludovic Courtès <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -156,7 +157,8 @@ selected keymap."
                (lambda (models layouts)
                  ((installer-keymap-page current-installer)
                   layouts)))))
-        (#$apply-keymap result))))
+        (#$apply-keymap result)
+        result)))
 
 (define (installer-steps)
   (let ((locale-step (compute-locale-step
@@ -208,7 +210,8 @@ selected keymap."
           (id 'keymap)
           (description (G_ "Keyboard mapping selection"))
           (compute (lambda _
-                     (#$keymap-step current-installer))))
+                     (#$keymap-step current-installer)))
+          (configuration-formatter keyboard-layout->configuration))
 
          ;; Run a partitioning tool allowing the user to modify
          ;; partition tables, partitions and their mount points.
@@ -313,6 +316,8 @@ selected keymap."
                          (gnu installer timezone)
                          (gnu installer user)
                          (gnu installer newt)
+                         ((gnu installer newt keymap)
+                          #:select (keyboard-layout->configuration))
                          (guix i18n)
                          (guix build utils)
                          (ice-9 match))
diff --git a/gnu/installer/newt/keymap.scm b/gnu/installer/newt/keymap.scm
index 3e765bf..948b547 100644
--- a/gnu/installer/newt/keymap.scm
+++ b/gnu/installer/newt/keymap.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2018 Mathieu Othacehe <address@hidden>
+;;; Copyright © 2019 Ludovic Courtès <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,7 +28,9 @@
   #:use-module (srfi srfi-26)
   #:use-module (srfi srfi-34)
   #:use-module (srfi srfi-35)
-  #:export (run-keymap-page))
+  #:use-module (ice-9 match)
+  #:export (run-keymap-page
+            keyboard-layout->configuration))
 
 (define (run-layout-page layouts layout->text)
   (let ((title (G_ "Layout")))
@@ -120,3 +123,11 @@ names of the selected keyboard layout and variant."
       (list layout (or variant ""))))
   (format-result
    (run-installer-steps #:steps keymap-steps)))
+
+(define (keyboard-layout->configuration keymap)
+  "Return the operating system configuration snippet to install KEYMAP."
+  (match keymap
+    ((name "")
+     `((keyboard-layout (keyboard-layout ,name))))
+    ((name variant)
+     `((keyboard-layout (keyboard-layout ,name ,variant))))))
diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm
index 642b8c6..24d048c 100644
--- a/gnu/installer/parted.scm
+++ b/gnu/installer/parted.scm
@@ -1258,7 +1258,11 @@ from (gnu system mapped-devices) and return it."
              `((bootloader grub-efi-bootloader)
                (target ,(default-esp-mount-point)))
              `((bootloader grub-bootloader)
-               (target ,root-partition-disk)))))))
+               (target ,root-partition-disk)))
+
+       ;; XXX: Assume we defined the 'keyboard-layout' field of
+       ;; <operating-system> right above.
+       (keyboard-layout keyboard-layout)))))
 
 (define (user-partitions->configuration user-partitions)
   "Return the configuration field for USER-PARTITIONS."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]