keyboard/altgr: import weur layout from xorg us symbols
authorMischa POSLAWSKY <perl@shiar.org>
Thu, 14 Mar 2024 22:09:51 +0000 (23:09 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Mon, 8 Apr 2024 15:39:26 +0000 (17:39 +0200)
keyboard/altgr/eurkey.eng.inc.pl
keyboard/altgr/weur.eng.inc.pl [new file with mode: 0644]
tools/mkkeyboard-xkb-symbols

index 5b9702cf427f42b003f7de40c84916dbb0cb27f7..d628ac1e8e3089abaa13c754b4865f68685239f0 100644 (file)
@@ -279,7 +279,7 @@ my %rows = (
        },
        version => '1.1',
        title => 'EurKEY',
-       category => 'latin/thirdparty',
+       category => 'latin/thirdparty/xorg',
        intro => join("\n",
                'Third-party proposal <a href="https://eurkey.steffen.bruentjen.eu/">EurKEY</a>',
                '<abbr title="last updated 2017-05-15">v1.3</abbr> by Steffen Brüntjen',
diff --git a/keyboard/altgr/weur.eng.inc.pl b/keyboard/altgr/weur.eng.inc.pl
new file mode 100644 (file)
index 0000000..6ef09eb
--- /dev/null
@@ -0,0 +1,174 @@
+use utf8;
+use strict;
+use warnings;
+use Shiar_Sheet::KeyboardChars 'kbmodes';
+
+my %rows = (
+       '' => {
+               '!'  => "\N{COMBINING DOT ABOVE}",
+               '"'  => "\N{COMBINING DIAERESIS}",
+               '#'  => "\N{COMBINING MACRON}",
+               '$'  => '¥',
+               '%'  => '£',
+               '&'  => '‚',
+               "'"  => "\N{COMBINING ACUTE ACCENT}",
+               '('  => '‘',
+               ')'  => '’',
+               '*'  => 'µ',
+               '+'  => "\N{COMBINING RING ABOVE}",
+               ','  => "\N{COMBINING CEDILLA}",
+               '-'  => '–',
+               '.'  => 'œ',
+               '/'  => '¿',
+               '0'  => '”',
+               '1'  => '¡',
+               '2'  => '²',
+               '3'  => '³',
+               '4'  => '¢',
+               '5'  => '€',
+               '6'  => "\N{COMBINING CIRCUMFLEX ACCENT}",
+               '7'  => '„',
+               '8'  => 'ß',
+               '9'  => '“',
+               ':'  => 'Ô',
+               ';'  => 'ô',
+               '<'  => "\N{COMBINING OGONEK}",
+               '='  => '°',
+               '>'  => 'Œ',
+               '?'  => "\N{COMBINING SHORT STROKE OVERLAY}",
+               '@'  => "\N{COMBINING DOUBLE ACUTE ACCENT}",
+               '['  => '«',
+               "\\" => 'ij',
+               ']'  => '»',
+               '^'  => "\N{COMBINING CARON}",
+               '_'  => '—',
+               '`'  => "\N{COMBINING GRAVE ACCENT}",
+               'a'  => 'ä',
+               'A'  => 'Ä',
+               'B'  => 'Õ',
+               'b'  => 'õ',
+               'C'  => 'Ç',
+               'c'  => 'ç',
+               'D'  => 'É',
+               'd'  => 'é',
+               'e'  => 'ë',
+               'E'  => 'Ë',
+               'F'  => 'Ê',
+               'f'  => 'ê',
+               'G'  => 'Î',
+               'g'  => 'î',
+               'h'  => 'û',
+               'H'  => 'Û',
+               'I'  => 'Ï',
+               'i'  => 'ï',
+               'j'  => 'ú',
+               'J'  => 'Ú',
+               'k'  => 'í',
+               'K'  => 'Í',
+               'L'  => 'Ó',
+               'l'  => 'ó',
+               'm'  => 'ì',
+               'M'  => 'Ì',
+               'n'  => 'ñ',
+               'N'  => 'Ñ',
+               'o'  => 'ö',
+               'O'  => 'Ö',
+               'P'  => 'Ò',
+               'p'  => 'ò',
+               'Q'  => 'Å',
+               'q'  => 'å',
+               'R'  => 'È',
+               'r'  => 'è',
+               'S'  => 'À',
+               's'  => 'à',
+               'T'  => 'Ø',
+               't'  => 'ø',
+               'u'  => 'ü',
+               'U'  => 'Ü',
+               'v'  => 'ã',
+               'V'  => 'Ã',
+               'W'  => 'Æ',
+               'w'  => 'æ',
+               'x'  => 'â',
+               'X'  => 'Â',
+               'Y'  => 'Ù',
+               'y'  => 'ù',
+               'z'  => 'á',
+               'Z'  => 'Á',
+               '{'  => '‹',
+               '|'  => 'IJ',
+               '}'  => '›',
+               '~'  => "\N{COMBINING TILDE}",
+       },
+       '*' => {
+               # dead_greek digraphs from data/xorg-compose
+               'A' => 'Α',
+               'a' => 'α',
+               'B' => 'Β',
+               'b' => 'β',
+               'D' => 'Δ',
+               'd' => 'δ',
+               'E' => 'Ε',
+               'e' => 'ε',
+               'F' => 'Φ',
+               'f' => 'φ',
+               'G' => 'Γ',
+               'g' => 'γ',
+               'H' => 'Η',
+               'h' => 'η',
+               'I' => 'Ι',
+               'i' => 'ι',
+               'J' => 'Θ',
+               'j' => 'θ',
+               'K' => 'Κ',
+               'k' => 'κ',
+               'L' => 'Λ',
+               'l' => 'λ',
+               'M' => 'Μ',
+               'm' => 'μ',
+               'N' => 'Ν',
+               'n' => 'ν',
+               'O' => 'Ο',
+               'o' => 'ο',
+               'P' => 'Π',
+               'p' => 'π',
+               'Q' => 'Χ',
+               'q' => 'χ',
+               'R' => 'Ρ',
+               'r' => 'ρ',
+               'S' => 'Σ',
+               's' => 'σ',
+               'T' => 'Τ',
+               't' => 'τ',
+               'U' => 'Υ',
+               'u' => 'υ',
+               'W' => 'Ω',
+               'w' => 'ω',
+               'X' => 'Ξ',
+               'x' => 'ξ',
+               'Y' => 'Ψ',
+               'y' => 'ψ',
+               'Z' => 'Ζ',
+               'z' => 'ζ',
+               '*' => 'µ', # MICRO SIGN at space and double mode
+       },
+);
+
++{
+       %{ kbmodes(\%rows) },
+       mode => {
+               ''  => 'altgr-shifted ⌥',
+               '*' => 'greek mode ⌥*',
+       },
+       version => '1.0', # upstream v2.0 2021/04/12
+       title => 'Western European',
+       category => 'latin/thirdparty/xorg',
+       intro => join("\n",
+               'Layout (<a href="https://altgr-weur.eu/" target=_blank>available</a> for major OSes)',
+               'to provide all accented characters commonly used',
+               'in 10 Western European languages available through one AltGr keystroke.',
+       ),
+       description => [
+               "QWERTY for Western European languages",
+       ],
+}
index a7049fa4a0eb8516090efe783454cfe957367e9a..ba65b7a3b2cfa20e6f034d57fab46b8ce97ac3c2 100755 (executable)
@@ -3,10 +3,11 @@ use 5.014;
 use warnings;
 use utf8;
 use re '/msx';
+use open IO => ':encoding(utf-8)', ':std';
 use JSON ();
 use Data::Dump 'pp';
 
-our $VERSION = '1.00';
+our $VERSION = '1.01';
 
 my $symname = eval {
        open my $keysymh, '<', 'data/keysymdef.json' or die $!;
@@ -88,7 +89,7 @@ while (readline) {
                #$res{$pos}[$shift] = $symname->{$chr} // $chr; # geochar
        }
 }
-say pp \%res;
+say pp(\%res) =~ s/(?<=") \\x \{? ([0-9A-F]{2,6}) \}?/chr hex $1/reg;
 
 __END__