guix-commits
[Top][All Lists]
Advanced

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

02/02: installer: Include empty variant in keyboard layout selection.


From: guix-commits
Subject: 02/02: installer: Include empty variant in keyboard layout selection.
Date: Wed, 8 Apr 2020 23:50:27 -0400 (EDT)

pelzflorian pushed a commit to branch master
in repository guix.

commit 7bc71025ccd0fabd739803889825e10341fbabdf
Author: Florian Pelz <address@hidden>
AuthorDate: Thu Apr 9 02:38:27 2020 +0200

    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.
---
 gnu/installer/newt/keymap.scm | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/gnu/installer/newt/keymap.scm b/gnu/installer/newt/keymap.scm
index a555a1e..1b3af2f 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.")))
       (append (sort main layout<?)
               (sort others layout<?)))))
 
+(define (add-empty-variant variants)
+  "Prepend #f to VARIANTS so the user has the option to select no variant.
+The resulting layout may be different from all other variants (e.g. for
+Azerbaijani)."
+  (cons #f variants))
+
 (define (sort-variants variants)
   "Sort VARIANTS list by putting the international variant ahead and return 
it."
   (call-with-values
       (lambda ()
         (partition
          (lambda (variant)
-           (let ((name (x11-keymap-variant-name variant)))
-             (string=? name "altgr-intl")))
+           (and variant
+                (let ((name (x11-keymap-variant-name variant)))
+                  (string=? name "altgr-intl"))))
          variants))
     (cut append <> <>)))
 
@@ -180,10 +187,14 @@ options."
            ;; Return #f if the layout does not have any variant.
            (and (not (null? variants))
                 (run-variant-page
-                 (sort-variants variants)
+                 (sort-variants (add-empty-variant variants))
                  (lambda (variant)
-                   (gettext (x11-keymap-variant-description variant)
-                            "xkeyboard-config"))))))))))
+                   (if variant
+                       (gettext (x11-keymap-variant-description variant)
+                                "xkeyboard-config")
+                       ;; Text to opt for no variant at all:
+                       (gettext (x11-keymap-layout-description layout)
+                                "xkeyboard-config")))))))))))
 
   (define (format-result result)
     (let ((layout (x11-keymap-layout-name



reply via email to

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