guix-commits
[Top][All Lists]
Advanced

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

64/80: installer: Add a console-keymap service.


From: John Darrington
Subject: 64/80: installer: Add a console-keymap service.
Date: Tue, 3 Jan 2017 15:49:45 +0000 (UTC)

jmd pushed a commit to branch wip-installer
in repository guix.

commit d5eb5800fbf92d0728fb198c6502ecca51837027
Author: John Darrington <address@hidden>
Date:   Sat Dec 31 14:37:54 2016 +0000

    installer: Add a console-keymap service.
    
    * gnu/system/installer/configure.scm (generate-guix-config): Add a
    console-keymap-service if the key-map variable is not #f.
    * gnu/system/installer/file-browser.scm (file-browser-page-key-handler):
    Set key-map on enter.
    * gnu/system/installer/misc.scm (key-map): New variable.
---
 gnu/system/installer/configure.scm    |    6 +++++-
 gnu/system/installer/file-browser.scm |   14 +++++++-------
 gnu/system/installer/misc.scm         |    2 ++
 3 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/gnu/system/installer/configure.scm 
b/gnu/system/installer/configure.scm
index 1878956..b855923 100644
--- a/gnu/system/installer/configure.scm
+++ b/gnu/system/installer/configure.scm
@@ -178,7 +178,11 @@
                   (list '%base-file-systems)))
         (users (cons* %base-user-accounts))
         (packages (cons* nss-certs %base-packages))
-        (services (cons* %desktop-services))
+        (services (cons*
+                   ,@(if key-map
+                        `((console-keymap-service ,key-map))
+                        `())
+                        %desktop-services))
         (name-service-switch %mdns-host-lookup-nss)) p)))
 
 
diff --git a/gnu/system/installer/file-browser.scm 
b/gnu/system/installer/file-browser.scm
index 87d8ef9..35c54cb 100644
--- a/gnu/system/installer/file-browser.scm
+++ b/gnu/system/installer/file-browser.scm
@@ -63,19 +63,19 @@
      ((and (eqv? ch #\newline)
           (menu-active menu))
       (let* ((i (menu-get-current-item menu))
-           (new-dir (string-append directory "/" i)))
+             (new-dir (string-append directory "/" i)))
        (if (eq? 'directory (stat:type (stat new-dir)))
            (let ((p (make-file-browser
                      page new-dir)))
              (set! page-stack (cons p page-stack))
              ((page-refresh p) p))
            (begin
-             (system* "loadkeys" i)
-             (set! page-stack (page-datum page 'exit-point))
-             #f)))
-    ))
-  (std-menu-key-handler menu ch)
-  #f))
+              (system* "loadkeys" i)
+              (set! key-map i)
+              (set! page-stack (page-datum page 'exit-point))
+              #f)))))
+    (std-menu-key-handler menu ch)
+    #f))
 
 
 (define (file-browser-page-refresh page)
diff --git a/gnu/system/installer/misc.scm b/gnu/system/installer/misc.scm
index e9e9083..e0af33d 100644
--- a/gnu/system/installer/misc.scm
+++ b/gnu/system/installer/misc.scm
@@ -23,6 +23,7 @@
   #:export (time-zone)
   #:export (host-name)
   #:export (config-file)
+  #:export (key-map)
   #:export (mount-points))
 
 (define livery-title 1)
@@ -32,6 +33,7 @@
 (define time-zone "")
 
 (define host-name "")
+(define key-map #f)
 
 (define config-file #f)
 



reply via email to

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