aboutsummaryrefslogtreecommitdiff
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
parentdc5f3275ecbddc804875899e9e457299a835d7ab (diff)
downloadguix-c088b2e47f6675199f1ef545df7d04d4532e64e3.tar
guix-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.
-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