keyboard/altgr: expected greek alphabet transliteration
authorMischa POSLAWSKY <perl@shiar.org>
Fri, 9 Feb 2024 23:20:33 +0000 (00:20 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Sun, 11 Feb 2024 06:39:57 +0000 (07:39 +0100)
Hardcode a mostly phonetic glyph map, overriding default letter names
so eg theta Θ matches Q not H (recognising spacecadet instead of eurkey).

Fixes spacecadet where everything is at expected keys except for ϑ and ς,
and eurkey allowing υ/φ/χ but not θ.

Shiar_Sheet/KeyboardChars.pm
keyboard/altgr/eurkey.eng.inc.pl
keyboard/altgr/spacecadet.eng.inc.pl

index 4a28f11cf6af900e9e086b522532a66152d21781..d406459347dd3f656b892f624c27e3547e718bd5 100644 (file)
@@ -9,16 +9,21 @@ use Unicode::Normalize qw( NFKD );
 use Text::Unidecode ();
 use Shiar_Sheet::FormatChar;
 
-our $VERSION = '1.02';
+our $VERSION = '1.03';
 our @EXPORT = qw( kbchars kbmodes );
 
 my $uc = Shiar_Sheet::FormatChar->new;
 
 our %unaccent = qw(
        ⍺ a  ⍵ w  ∊ E  ⍷ E  ⍴ r  ⍳ i  ⍸ i  ○ O  ⍥ O  ⌿ /  ⍟ (*) ⊕ (+)
-       Ʊ U  ǝ e  Ǝ E  ʌ v  χ X  ɥ h  ʘ O  ɰ mw ɯ mw Ɯ MW ə @ae Ə @AE
+       Ʊ U  ǝ e  Ǝ E  ʌ v       ɥ h  ʘ O  ɰ mw ɯ mw Ɯ MW ə @ae Ə @AE
        ɸ PF ʎ yl ɔ co Ɔ CO ɛ 3E ƣ q  Ƣ Q  ∀ A  ∃ E  ∪ u  ∩ n   ≠ !=
        ≈ =~ ∅ /0 ∘ o  ⋅ .  ∫ s  ≝ =d ″ "  ≤ <  ≥ >  √ rV ∛ 3V  ∜ 4V
+       Α A  Β B  Γ G  Δ D  Ε E  Ζ Z  Η H  Θ CQ Ι I  Κ K  Λ L  Μ M
+       Ν N  Ξ X  Ο O  Π P  Ρ R  Σ S  Τ T  Υ YU Φ F  Χ CX Ψ Y  Ω W
+       α a  β b  γ g  δ d  ε e  ζ z  η h  θ cq ι i  κ k  λ l  μ m
+       ν n  ξ x  ο o  π p  ρ r  σ s  τ t  υ yu φ f  χ cx ψ y  ω w
+                                ς sc      ϑ cq                µ mu
 );
 
 sub unidecode {
index a0b9ea21cbb7918c036256bb43d446a8913f1d30..72208514a6cab5819b1719aaf196921ce7690801 100644 (file)
@@ -277,7 +277,7 @@ my %rows = (
                'M' => '√ maths prefix ⌥M',
                $presymbol => "$rows{''}{$presymbol} symbol prefix ⌥$presymbol",
        },
-       version => '1.0',
+       version => '1.1',
        title => 'EurKEY',
        category => 'latin',
        intro => join("\n",
index 75e2948b3a9f9215d4df343823c35eb748d1d37e..12c2fbeea51b26c898a20050326757922fe51089 100644 (file)
@@ -89,9 +89,14 @@ my %rows = (
        '+/' => '∫',
 );
 
+my $groups = kbchars(\%rows);
+$rows{$_} =~ /\A\p{Greek}/ and $groups->{def}{''}{$_} =~ s/g6/g5/ for map {"+$_"} 'a'..'z';
+$groups->{flag}{g4} = ['similar', 'transliterates or transcribes an expected letter'];
+$groups->{flag}{g5} = ['greek', 'different Greek letters or symbols'];
+
 +{
-       %{ kbchars(\%rows) },
-       version => '1.0',
+       %{$groups},
+       version => '1.1',
        title => 'Space Cadet',
        category => 'legacy',
        intro => join("\n",