summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/installer.scm2
-rw-r--r--gnu/installer/newt/keymap.scm21
2 files changed, 14 insertions, 9 deletions
diff --git a/gnu/installer.scm b/gnu/installer.scm
index 7863edbb67d..d2be4b34f91 100644
--- a/gnu/installer.scm
+++ b/gnu/installer.scm
@@ -187,7 +187,7 @@ selected keymap."
187 (lambda (models layouts) 187 (lambda (models layouts)
188 ((installer-keymap-page current-installer) 188 ((installer-keymap-page current-installer)
189 layouts '#$context))))) 189 layouts '#$context)))))
190 (#$apply-keymap result) 190 (and result (#$apply-keymap result))
191 result))) 191 result)))
192 192
193(define (installer-steps) 193(define (installer-steps)
diff --git a/gnu/installer/newt/keymap.scm b/gnu/installer/newt/keymap.scm
index 1b3af2f158b..92f7f46f34d 100644
--- a/gnu/installer/newt/keymap.scm
+++ b/gnu/installer/newt/keymap.scm
@@ -56,7 +56,7 @@ different layout at any time from the parameters menu.")))
56 (else (G_ "Exit"))) 56 (else (G_ "Exit")))
57 #:button-callback-procedure 57 #:button-callback-procedure
58 (case context 58 (case context
59 ((param) (const #t)) 59 ((param) (const #f))
60 (else 60 (else
61 (lambda _ 61 (lambda _
62 (raise 62 (raise
@@ -183,7 +183,9 @@ options."
183 (compute 183 (compute
184 (lambda (result _) 184 (lambda (result _)
185 (let* ((layout (result-step result 'layout)) 185 (let* ((layout (result-step result 'layout))
186 (variants (x11-keymap-layout-variants layout))) 186 (variants (if layout
187 (x11-keymap-layout-variants layout)
188 '())))
187 ;; Return #f if the layout does not have any variant. 189 ;; Return #f if the layout does not have any variant.
188 (and (not (null? variants)) 190 (and (not (null? variants))
189 (run-variant-page 191 (run-variant-page
@@ -196,16 +198,19 @@ options."
196 (gettext (x11-keymap-layout-description layout) 198 (gettext (x11-keymap-layout-description layout)
197 "xkeyboard-config"))))))))))) 199 "xkeyboard-config")))))))))))
198 200
199 (define (format-result result) 201 (define (format-result layout variant)
200 (let ((layout (x11-keymap-layout-name 202 (let ((layout (x11-keymap-layout-name layout))
201 (result-step result 'layout))) 203 (variant (and=> variant
202 (variant (and=> (result-step result 'variant)
203 (lambda (variant) 204 (lambda (variant)
204 (gettext (x11-keymap-variant-name variant) 205 (gettext (x11-keymap-variant-name variant)
205 "xkeyboard-config"))))) 206 "xkeyboard-config")))))
206 (toggleable-latin-layout layout variant))) 207 (toggleable-latin-layout layout variant)))
207 (format-result 208
208 (run-installer-steps #:steps keymap-steps))) 209 (let* ((result (run-installer-steps #:steps keymap-steps))
210 (layout (result-step result 'layout))
211 (variant (result-step result 'variant)))
212 (and layout
213 (format-result layout variant))))
209 214
210(define (keyboard-layout->configuration keymap) 215(define (keyboard-layout->configuration keymap)
211 "Return the operating system configuration snippet to install KEYMAP." 216 "Return the operating system configuration snippet to install KEYMAP."