keyboard/altgr/weur: dweurak metadata overrides
[sheet.git] / keyboard / altgr / weur.eng.inc.pl
1 use utf8;
2 use strict;
3 use warnings;
4 no warnings 'qw';
5 use Shiar_Sheet::KeyboardChars 'kbmodes';
6
7 my %info = (
8         mode => {
9                 ''  => 'altgr-shifted ⌥',
10                 '*' => 'μ greek prefix ⌥*',
11         },
12         version => '1.0', # upstream v2.0 2021/04/12
13         title => 'Western European',
14         map => 'qwerty', # specific positioning
15         category => 'latin/thirdparty/xorg',
16         intro => join("\n",
17                 'Layout (<a href="https://altgr-weur.eu/" target=_blank>available</a> for major OSes)',
18                 'to provide all accented characters commonly used',
19                 'in 10 Western European languages available through one AltGr keystroke.',
20         ),
21         description => [
22                 "QWERTY for Western European languages",
23         ],
24 );
25
26 my %rows = (
27         '' => {
28                 '!'  => "\N{COMBINING DOT ABOVE}",
29                 '"'  => "\N{COMBINING DIAERESIS}",
30                 '#'  => "\N{COMBINING MACRON}",
31                 '$'  => '¥',
32                 '%'  => '£',
33                 '&'  => '‚',
34                 "'"  => "\N{COMBINING ACUTE ACCENT}",
35                 '('  => '‘',
36                 ')'  => '’',
37                 '*'  => 'µ',
38                 '+'  => "\N{COMBINING RING ABOVE}",
39                 ','  => "\N{COMBINING CEDILLA}",
40                 '-'  => '–',
41                 '.'  => 'œ',
42                 '/'  => '¿',
43                 '0'  => '”',
44                 '1'  => '¡',
45                 '2'  => '²',
46                 '3'  => '³',
47                 '4'  => '¢',
48                 '5'  => '€',
49                 '6'  => "\N{COMBINING CIRCUMFLEX ACCENT}",
50                 '7'  => '„',
51                 '8'  => 'ß',
52                 '9'  => '“',
53                 ':'  => 'Ô',
54                 ';'  => 'ô',
55                 '<'  => "\N{COMBINING OGONEK}",
56                 '='  => '°',
57                 '>'  => 'Œ',
58                 '?'  => "\N{COMBINING SHORT STROKE OVERLAY}",
59                 '@'  => "\N{COMBINING DOUBLE ACUTE ACCENT}",
60                 '['  => '«',
61                 "\\" => 'ij',
62                 ']'  => '»',
63                 '^'  => "\N{COMBINING CARON}",
64                 '_'  => '—',
65                 '`'  => "\N{COMBINING GRAVE ACCENT}",
66                 'a'  => 'ä',
67                 'A'  => 'Ä',
68                 'B'  => 'Õ',
69                 'b'  => 'õ',
70                 'C'  => 'Ç',
71                 'c'  => 'ç',
72                 'D'  => 'É',
73                 'd'  => 'é',
74                 'e'  => 'ë',
75                 'E'  => 'Ë',
76                 'F'  => 'Ê',
77                 'f'  => 'ê',
78                 'G'  => 'Î',
79                 'g'  => 'î',
80                 'h'  => 'û',
81                 'H'  => 'Û',
82                 'I'  => 'Ï',
83                 'i'  => 'ï',
84                 'j'  => 'ú',
85                 'J'  => 'Ú',
86                 'k'  => 'í',
87                 'K'  => 'Í',
88                 'L'  => 'Ó',
89                 'l'  => 'ó',
90                 'm'  => 'ì',
91                 'M'  => 'Ì',
92                 'n'  => 'ñ',
93                 'N'  => 'Ñ',
94                 'o'  => 'ö',
95                 'O'  => 'Ö',
96                 'P'  => 'Ò',
97                 'p'  => 'ò',
98                 'Q'  => 'Å',
99                 'q'  => 'å',
100                 'R'  => 'È',
101                 'r'  => 'è',
102                 'S'  => 'À',
103                 's'  => 'à',
104                 'T'  => 'Ø',
105                 't'  => 'ø',
106                 'u'  => 'ü',
107                 'U'  => 'Ü',
108                 'v'  => 'ã',
109                 'V'  => 'Ã',
110                 'W'  => 'Æ',
111                 'w'  => 'æ',
112                 'x'  => 'â',
113                 'X'  => 'Â',
114                 'Y'  => 'Ù',
115                 'y'  => 'ù',
116                 'z'  => 'á',
117                 'Z'  => 'Á',
118                 '{'  => '‹',
119                 '|'  => 'IJ',
120                 '}'  => '›',
121                 '~'  => "\N{COMBINING TILDE}",
122         },
123         '*' => {
124                 # dead_greek digraphs from data/xorg-compose
125                 'A' => 'Α',
126                 'a' => 'α',
127                 'B' => 'Β',
128                 'b' => 'β',
129                 'D' => 'Δ',
130                 'd' => 'δ',
131                 'E' => 'Ε',
132                 'e' => 'ε',
133                 'F' => 'Φ',
134                 'f' => 'φ',
135                 'G' => 'Γ',
136                 'g' => 'γ',
137                 'H' => 'Η',
138                 'h' => 'η',
139                 'I' => 'Ι',
140                 'i' => 'ι',
141                 'J' => 'Θ',
142                 'j' => 'θ',
143                 'K' => 'Κ',
144                 'k' => 'κ',
145                 'L' => 'Λ',
146                 'l' => 'λ',
147                 'M' => 'Μ',
148                 'm' => 'μ',
149                 'N' => 'Ν',
150                 'n' => 'ν',
151                 'O' => 'Ο',
152                 'o' => 'ο',
153                 'P' => 'Π',
154                 'p' => 'π',
155                 'Q' => 'Χ',
156                 'q' => 'χ',
157                 'R' => 'Ρ',
158                 'r' => 'ρ',
159                 'S' => 'Σ',
160                 's' => 'σ',
161                 'T' => 'Τ',
162                 't' => 'τ',
163                 'U' => 'Υ',
164                 'u' => 'υ',
165                 'W' => 'Ω',
166                 'w' => 'ω',
167                 'X' => 'Ξ',
168                 'x' => 'ξ',
169                 'Y' => 'Ψ',
170                 'y' => 'ψ',
171                 'Z' => 'Ζ',
172                 'z' => 'ζ',
173                 '*' => 'µ', # MICRO SIGN at space and double mode
174         },
175 );
176
177 our %get;
178 if ($get{map} and $get{map} eq 'dvorak') {
179         %info = (%info,
180                 map   => 'dvorak',
181                 title => 'dWEURak',
182                 intro => join("\n",
183                         'Layout for <a href="https://altgr-weur.eu/" target=_blank>Western European</a> languages',
184                         'repositioned for Dvorak letters instead of original <span class=family-name>Qwerty</span>.',
185                 ),
186                 description => [
187                         "Dvorak for Western European languages",
188                 ],
189         );
190         $info{version} .= '.1';
191
192         my $dq = q{
193                 'z ,l .d pj yk  fq gt  r, l'
194                 dv hb s8  tw 8.
195                 ;s qp jr ky xm  bx m; wf vh zg
196         };
197         my %dq = split //, $dq =~ s/\s//gr;  # dvorak => qwerty key
198
199         my %uc = (qw{ ' "  , <  . >  ; :  - _  8 * }, map {lc, uc} 'a'..'z');
200         $dq{ $uc{$_} } = $uc{ $dq{$_} } for keys %dq;  # same shifted
201
202         @{ $rows{''} }{keys %dq} = map { $rows{''}{$_} } values %dq;
203         $rows{S} = delete $rows{'*'};
204 }
205
206 +{ %{ kbmodes(\%rows) }, %info }