summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorMathieu Othacehe <m.othacehe@gmail.com>2018-12-05 14:36:22 +0900
committerLudovic Courtès <ludo@gnu.org>2019-01-17 14:04:23 +0100
commitc088b2e47f6675199f1ef545df7d04d4532e64e3 (patch)
tree335f80e187ea1da73fbb39a1ca296166e714db90 /gnu
parentdc5f3275ecbddc804875899e9e457299a835d7ab (diff)
downloadguix-c088b2e47f6675199f1ef545df7d04d4532e64e3.tar.gz
installer: Do not ask for keyboard model.
Suppose that the keyboard model is "pc105".

* gnu/installer.scm (apply-keymap): Remove model ...
* gnu/installer/newt/keymap.scm (run-keymap-page): passed here.
(run-model-page): remove procedure
* gnu/installer/record.scm (installer): Edit keymap-page prototype in comment.
* gnu/installer/keymap.scm (default-keyboard-model): New exported parameter.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/installer.scm10
-rw-r--r--gnu/installer/keymap.scm4
-rw-r--r--gnu/installer/newt.scm5
-rw-r--r--gnu/installer/newt/keymap.scm44
-rw-r--r--gnu/installer/newt/locale.scm6
-rw-r--r--gnu/installer/record.scm2
6 files changed, 21 insertions, 50 deletions
diff --git a/gnu/installer.scm b/gnu/installer.scm
index e53acb12f4..4a587eb35b 100644
--- a/gnu/installer.scm
+++ b/gnu/installer.scm
@@ -133,10 +133,11 @@ been performed at build time."
           result))))
 
 (define apply-keymap
-  ;; Apply the specified keymap.
+  ;; Apply the specified keymap. Use the default keyboard model.
   #~(match-lambda
-      ((model layout variant)
-       (kmscon-update-keymap model layout variant))))
+      ((layout variant)
+       (kmscon-update-keymap (default-keyboard-model)
+                             layout variant))))
 
 (define* (compute-keymap-step)
   "Return a gexp that runs the keymap-page of INSTALLER and install the
@@ -150,8 +151,7 @@ selected keymap."
                                    "/share/X11/xkb/rules/base.xml")))
                (lambda (models layouts)
                  ((installer-keymap-page current-installer)
-                  #:models models
-                  #:layouts layouts)))))
+                  layouts)))))
         (#$apply-keymap result))))
 
 (define (installer-steps)
diff --git a/gnu/installer/keymap.scm b/gnu/installer/keymap.scm
index 78065aa6c6..d9f8656855 100644
--- a/gnu/installer/keymap.scm
+++ b/gnu/installer/keymap.scm
@@ -46,6 +46,7 @@
             x11-keymap-variant-name
             x11-keymap-variant-description
 
+            default-keyboard-model
             xkb-rules->models+layouts
             kmscon-update-keymap))
 
@@ -68,6 +69,9 @@
   (name            x11-keymap-variant-name) ;string
   (description     x11-keymap-variant-description)) ;string
 
+;; Assume all modern keyboards have this model.
+(define default-keyboard-model (make-parameter "pc105"))
+
 (define (xkb-rules->models+layouts file)
   "Parse FILE and return two values, the list of supported X11-KEYMAP-MODEL
 and X11-KEYMAP-LAYOUT records. FILE is an XML file from the X Keyboard
diff --git a/gnu/installer/newt.scm b/gnu/installer/newt.scm
index 77a7e6dca2..1f51b111a8 100644
--- a/gnu/installer/newt.scm
+++ b/gnu/installer/newt.scm
@@ -68,9 +68,8 @@
 (define (menu-page steps)
   (run-menu-page steps))
 
-(define* (keymap-page #:key models layouts)
-  (run-keymap-page #:models models
-                   #:layouts layouts))
+(define* (keymap-page layouts)
+  (run-keymap-page layouts))
 
 (define (network-page)
   (run-network-page))
diff --git a/gnu/installer/newt/keymap.scm b/gnu/installer/newt/keymap.scm
index 0c9432bba2..0c38a79e19 100644
--- a/gnu/installer/newt/keymap.scm
+++ b/gnu/installer/newt/keymap.scm
@@ -56,43 +56,13 @@
         (condition
          (&installer-step-abort)))))))
 
-(define (run-model-page models model->text)
-  (let ((title (G_ "Keyboard model selection")))
-    (run-listbox-selection-page
-     #:title title
-     #:info-text (G_ "Please choose your keyboard model.")
-     #:listbox-items models
-     #:listbox-item->text model->text
-     #:listbox-default-item (find (lambda (model)
-                                    (string=? (x11-keymap-model-name model)
-                                              "pc105"))
-                                  models)
-     #:sort-listbox-items? #f
-     #:button-text (G_ "Back")
-     #:button-callback-procedure
-     (lambda _
-       (raise
-        (condition
-         (&installer-step-abort)))))))
-
-(define* (run-keymap-page #:key models layouts)
-  "Run a page asking the user to select a keyboard model, layout and
-variant. MODELS and LAYOUTS are lists of supported X11-KEYMAP-MODEL and
-X11-KEYMAP-LAYOUT. Return a list of three elements, the names of the selected
-keyboard model, layout and variant."
+(define* (run-keymap-page layouts)
+  "Run a page asking the user to select a keyboard layout and variant. LAYOUTS
+is a list of supported X11-KEYMAP-LAYOUT. Return a list of two elements, the
+names of the selected keyboard layout and variant."
   (define keymap-steps
     (list
      (installer-step
-      (id 'model)
-      (compute
-       (lambda _
-         ;; TODO: Understand why (run-model-page models x11-keymap-model-name)
-         ;; fails with: warning: possibly unbound variable
-         ;; `%x11-keymap-model-description-procedure.
-         (run-model-page models (lambda (model)
-                                  (x11-keymap-model-description
-                                   model))))))
-     (installer-step
       (id 'layout)
       (compute
        (lambda _
@@ -120,13 +90,11 @@ keyboard model, layout and variant."
                                 variant)))))))))
 
   (define (format-result result)
-    (let ((model (x11-keymap-model-name
-                  (result-step result 'model)))
-          (layout (x11-keymap-layout-name
+    (let ((layout (x11-keymap-layout-name
                    (result-step result 'layout)))
           (variant (and=> (result-step result 'variant)
                           (lambda (variant)
                             (x11-keymap-variant-name variant)))))
-      (list model layout (or variant ""))))
+      (list layout (or variant ""))))
   (format-result
    (run-installer-steps #:steps keymap-steps)))
diff --git a/gnu/installer/newt/locale.scm b/gnu/installer/newt/locale.scm
index 599a6b0ecf..028372c194 100644
--- a/gnu/installer/newt/locale.scm
+++ b/gnu/installer/newt/locale.scm
@@ -143,7 +143,7 @@ glibc locale string and return it."
      (installer-step
       (id 'territory)
       (compute
-       (lambda (result)
+       (lambda (result _)
          (let ((locales (filter-locales supported-locales result)))
            ;; Stop the process if the language returned by the previous step
            ;; is matching one and only one supported locale.
@@ -161,7 +161,7 @@ glibc locale string and return it."
      (installer-step
       (id 'codeset)
       (compute
-       (lambda (result)
+       (lambda (result _)
          (let ((locales (filter-locales supported-locales result)))
            ;; Same as above but we now have a language and a territory to
            ;; narrow down the search of a locale.
@@ -173,7 +173,7 @@ glibc locale string and return it."
      (installer-step
       (id 'modifier)
       (compute
-       (lambda (result)
+       (lambda (result _)
          (let ((locales (filter-locales supported-locales result)))
            ;; Same thing with a language, a territory and a codeset this time.
            (break-on-locale-found locales)
diff --git a/gnu/installer/record.scm b/gnu/installer/record.scm
index bf74040699..ba7625e65a 100644
--- a/gnu/installer/record.scm
+++ b/gnu/installer/record.scm
@@ -57,9 +57,9 @@
   (exit installer-exit)
   ;; procedure (key arguments) -> void
   (exit-error installer-exit-error)
-  ;; procedure (#:key models layouts) -> (list model layout variant)
   ;; procedure void -> void
   (final-page installer-final-page)
+  ;; procedure (layouts) -> (list layout variant)
   (keymap-page installer-keymap-page)
   ;; procedure: (#:key supported-locales iso639-languages iso3166-territories)
   ;; -> glibc-locale