From febd26009e022853dcf4d28321386c733eb28fb3 Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Thu, 28 Dec 2023 05:45:48 +0100 Subject: [PATCH] keyboard/altgr/eurkey: composition modes from pdf and changelog --- Shiar_Sheet/Keyboard.pm | 3 +- keyboard/altgr/eurkey.eng.inc.pl | 181 ++++++++++++++++++++++++++++++- 2 files changed, 182 insertions(+), 2 deletions(-) diff --git a/Shiar_Sheet/Keyboard.pm b/Shiar_Sheet/Keyboard.pm index bf25477..327b20c 100644 --- a/Shiar_Sheet/Keyboard.pm +++ b/Shiar_Sheet/Keyboard.pm @@ -6,7 +6,7 @@ use warnings; no warnings 'uninitialized'; # save some useless checks for more legible code use Carp; -our $VERSION = '2.09'; +our $VERSION = '2.10'; my @casedesc = (undef, qw/shift ctrl meta/, 'shift meta'); my @rowdesc = qw(numeric top home bottom); @@ -56,6 +56,7 @@ sub escapeclass { s/\+/_m/g; s/\[/_sbo/g; s/\]/_sbc/g; + s/\\/_b/g; s/^$/_/; return $_; } diff --git a/keyboard/altgr/eurkey.eng.inc.pl b/keyboard/altgr/eurkey.eng.inc.pl index 1e73e21..cc820e7 100644 --- a/keyboard/altgr/eurkey.eng.inc.pl +++ b/keyboard/altgr/eurkey.eng.inc.pl @@ -4,6 +4,28 @@ use warnings; my $V = v1.3; +my $presymbol = $V ge v1.3 ? '\\' : '-'; +my %arrows = ( + 'h' => '←', + 'H' => '⇐', + 'j' => '↓', + 'J' => '⇓', + 'k' => '↑', + 'K' => '⇑', + 'l' => '→', + 'L' => '⇒', + 'u' => '↖', + 'U' => '⇖', + 'i' => '↗', + 'I' => '⇗', + 'n' => '↙', + 'N' => '⇙', + 'm' => '↘', + 'M' => '⇘', + '=' => '↔', + '+' => '⇔', +); + our %rows = ( '1' => '¡', '!' => '¹', @@ -101,10 +123,167 @@ our %rows = ( '>' => 'Ó', '/' => '¿', '?' => '…', + + # greek + 'ma' => 'α', + 'mb' => 'β', # v + 'mg' => 'γ', + 'md' => 'δ', + 'me' => 'ε', + 'mz' => 'ζ', + 'mi' => 'η', + 'mh' => 'θ', + 'mj' => 'ι', + 'mk' => 'κ', + 'ml' => 'λ', + 'mm' => 'μ', + 'mn' => 'ν', + 'mx' => 'ξ', + 'mo' => 'ο', + 'mp' => 'π', + 'mr' => 'ρ', + 'ms' => 'σ', + 'mt' => 'τ', + 'my' => 'υ', + 'mf' => 'φ', + 'mc' => 'χ', + 'mw' => 'ψ', + 'mq' => 'ω', # u + + # suþscript + 'm1' => '¹', + 'm2' => '²', + 'm3' => '³', + 'm4' => '⁴', + 'm5' => '⁵', + 'm6' => '⁶', + 'm7' => '⁷', + 'm8' => '⁸', + 'm9' => '⁹', + 'm0' => '⁰', + 'm!' => '₁', + 'm@' => '₂', + 'm#' => '₃', + 'm$' => '₄', + 'm%' => '₅', + 'm^' => '₆', + 'm&' => '₇', + 'm*' => '₈', + 'm(' => '₉', + 'm)' => '₀', + + # maths + 'M!' => '≠', + 'M~' => '≈', + 'M=' => '≝', + 'M>' => '≥', + 'M<' => '≤', + 'M-' => '±', + 'Mi' => '∞', + 'Mn' => 'ⁿ', + 'Mr' => '√', + 'M3' => '∛', + 'M4' => '∜', + 'M%' => '‰', + + 'Mf' => 'ƒ', + 'MS' => '∫', + "M'" => '′', + 'M"' => '″', + 'Mp' => '∂', + 'Md' => 'Δ', + 'MD' => '∇', + 'M+' => '⊕', + 'M*' => '⊗', + 'M^' => '℘', + + 'Ms' => '∩', + 'Mu' => '∪', + 'MU' => '∖', + 'MO' => '∅', + 'Mg' => '⊂', + 'MG' => '⊃', + 'Mh' => '⊄', + 'MH' => '⊅', + 'Mb' => '⊆', + 'MB' => '⊇', + 'Mm' => '∈', + 'MM' => '∉', + 'Mk' => '∋', + 'MK' => '∌', + + 'MA' => '∀', + 'ME' => '∃', + 'MX' => '∄', + 'M&' => '∧', + 'M|' => '∨', + 'Mc' => '∝', + 'M.' => '⋅', + 'Mo' => '∘', + 'M:' => '∴', + 'M;' => '∵', + 'Mz' => '↯', + 'MF' => '∎', + + 'MR' => 'ℝ', + 'MC' => 'ℂ', + 'MN' => 'ℕ', + 'MP' => 'ℙ', + 'MQ' => 'ℚ', + 'MZ' => 'ℤ', + 'M9' => '∟', + 'M8' => '∠', + 'M7' => '∡', + 'Ml' => '∥', + 'ML' => '∦', + + # symbols + '-1' => '¼', + '-2' => '½', + '-3' => '¾', + '-4' => '⅓', + '-5' => '⅔', + '-c' => '©', + '-p' => '℗', + '-r' => '®', + '-s' => '℠', + '-t' => '™', + + '\s' => '§', + '\1' => '№', + '\2' => '½', + '\3' => '⅓', + '\4' => '¼', + '\5' => '⅔', + '\6' => '¾', + '\c' => '©', + '\p' => '℗', + '\r' => '®', + '\t' => '™', + '\T' => '℠', + + (map { ($presymbol.$_ => $arrows{$_}) } keys %arrows), ); +my $groups = do 'keyboard/altgr/groups.inc.pl'; +$groups->{mode} = { + '' => 'option-shifted ⌥', + 'm' => 'Ω greek prefix ⌥m', + 'M' => '√ maths prefix ⌥M', + $presymbol => "$rows{$presymbol} symbol prefix ⌥$presymbol", +}; +for my $m (qw' m M ', $presymbol) { + $groups->{def}->{''}->{$m} = "g1 mode$m"; + $groups->{mode}->{$m} //= "mode $m"; + $groups->{def}->{$m} = { + (map {s/^.//r => 'g0'} grep {/^\Q$m/} keys %rows), + $m => 'g1 mode', + }; +} +$groups->{flag}->{g1} = ['mode' => "switch to an alternate set of keys"]; + +{ - %{ do 'keyboard/altgr/groups.inc.pl' }, + %{$groups}, version => '1.0', title => 'EurKEY', intro => join("\n", -- 2.30.0