summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Pelz <pelzflorian@pelzflorian.de>2020-04-09 02:38:27 +0200
committerFlorian Pelz <pelzflorian@pelzflorian.de>2020-04-09 03:45:22 +0000
commit7bc71025ccd0fabd739803889825e10341fbabdf (patch)
tree5aa14b90f522650a278afafa5a132b2b69a16b04
parent91c231a2223440081426929828a23c7baa0214fd (diff)
installer: Include empty variant in keyboard layout selection.
Previously for Azerbaijani, no Latin layout but only the Cyrillic variant could be selected. * gnu/installer/newt/keymap.scm (add-empty-variant): New procedure. (run-keymap-page): Use it to insert an empty variant.
-rw-r--r--gnu/installer/newt/keymap.scm21
1 files changed, 16 insertions, 5 deletions
diff --git a/gnu/installer/newt/keymap.scm b/gnu/installer/newt/keymap.scm
index a555a1ecc12..1b3af2f158b 100644
--- a/gnu/installer/newt/keymap.scm
+++ b/gnu/installer/newt/keymap.scm
@@ -104,14 +104,21 @@ different layout at any time from the parameters menu.")))
104 (append (sort main layout<?) 104 (append (sort main layout<?)
105 (sort others layout<?))))) 105 (sort others layout<?)))))
106 106
107(define (add-empty-variant variants)
108 "Prepend #f to VARIANTS so the user has the option to select no variant.
109The resulting layout may be different from all other variants (e.g. for
110Azerbaijani)."
111 (cons #f variants))
112
107(define (sort-variants variants) 113(define (sort-variants variants)
108 "Sort VARIANTS list by putting the international variant ahead and return it." 114 "Sort VARIANTS list by putting the international variant ahead and return it."
109 (call-with-values 115 (call-with-values
110 (lambda () 116 (lambda ()
111 (partition 117 (partition
112 (lambda (variant) 118 (lambda (variant)
113 (let ((name (x11-keymap-variant-name variant))) 119 (and variant
114 (string=? name "altgr-intl"))) 120 (let ((name (x11-keymap-variant-name variant)))
121 (string=? name "altgr-intl"))))
115 variants)) 122 variants))
116 (cut append <> <>))) 123 (cut append <> <>)))
117 124
@@ -180,10 +187,14 @@ options."
180 ;; Return #f if the layout does not have any variant. 187 ;; Return #f if the layout does not have any variant.
181 (and (not (null? variants)) 188 (and (not (null? variants))
182 (run-variant-page 189 (run-variant-page
183 (sort-variants variants) 190 (sort-variants (add-empty-variant variants))
184 (lambda (variant) 191 (lambda (variant)
185 (gettext (x11-keymap-variant-description variant) 192 (if variant
186 "xkeyboard-config")))))))))) 193 (gettext (x11-keymap-variant-description variant)
194 "xkeyboard-config")
195 ;; Text to opt for no variant at all:
196 (gettext (x11-keymap-layout-description layout)
197 "xkeyboard-config")))))))))))
187 198
188 (define (format-result result) 199 (define (format-result result)
189 (let ((layout (x11-keymap-layout-name 200 (let ((layout (x11-keymap-layout-name