keyboard/altgr/spacecadet: find similar greek on meta mode
authorMischa POSLAWSKY <perl@shiar.org>
Sun, 11 Feb 2024 01:32:21 +0000 (02:32 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Sun, 11 Feb 2024 06:39:57 +0000 (07:39 +0100)
Ignore mode prefix in key matches.

Shiar_Sheet/KeyboardChars.pm

index d406459347dd3f656b892f624c27e3547e718bd5..e2822cd05eeff6dec029b920058161f586772b28 100644 (file)
@@ -47,9 +47,10 @@ sub kbmodes ($modes) {
                        $info{mode}->{$lead} //= "mode $lead";
                        $info{def}->{$lead}{$lead} = 'g1 mode'; # back
                }
-               while (my ($c, $v) = each %{ $modes->{$lead} }) {
+               while (my ($k, $v) = each %{ $modes->{$lead} }) {
                        my ($glyph, $title) = $uc->glyph_html($v);
-                       $info{key}{$lead.$c} = join "\n", $glyph, $title;
+                       $info{key}{$lead.$k} = join "\n", $glyph, $title;
+                       my $c = $k =~ s/\A[+^](?=.)//r;  # trim modifier indicator
 
                        my $class = 'g'.(
                                  !defined $v || $c eq $v ? 1 # identical
@@ -62,7 +63,7 @@ sub kbmodes ($modes) {
                                : 6
                        );
                        $g{$class} = 1;
-                       $info{def}{$lead}{$c} //= $class;
+                       $info{def}{$lead}{$k} //= $class;
                }
        }
        $info{flag} = {%{{