keyboard/altgr/index: move ctrl rows to distinct inventory mode
[sheet.git] / keyboard / altgr / eurkey.eng.inc.pl
1 use utf8;
2 use strict;
3 use warnings;
4 use Shiar_Sheet::KeyboardChars 'kbmodes';
5
6 my $V = v1.3;
7
8 my $presymbol = $V ge v1.3 ? '\\' : '-';
9 my %rows = (
10         '' => {
11         '1' => '¡',
12         '!' => '¹',
13         '2' => 'ª',
14         '@' => '²',
15         '3' => 'º',
16         '#' => '³',
17         '4' => $V ge v1.1 ? '£' : '€',
18         '$' => '¥',
19         '5' => $V ge v1.1 ? '€' : '£',
20         '%' => '¢',
21         '6' => "\N{COMBINING CIRCUMFLEX ACCENT}",
22         '^' => "\N{COMBINING CARON}",
23         '7' => "\N{COMBINING RING ABOVE}",
24         '&' => "\N{COMBINING MACRON}",
25         '8' => "\N{DOUBLE LOW-9 QUOTATION MARK}",
26         '*' => "\N{SINGLE LOW-9 QUOTATION MARK}",
27         '9' => "\N{LEFT DOUBLE QUOTATION MARK}",
28         '(' => "\N{LEFT SINGLE QUOTATION MARK}",
29         '0' => "\N{RIGHT DOUBLE QUOTATION MARK}",
30         ')' => "\N{RIGHT SINGLE QUOTATION MARK}",
31         '-' => $V ge v1.3 ? '✓' : '©',
32         '_' => $V ge v1.3 ? '✗' : '№',
33         '=' => '×',
34         '+' => '÷',
35         'q' => 'æ',
36         'Q' => 'Æ',
37         'w' => 'å',
38         'W' => 'Å',
39         'e' => 'ë',
40         'E' => 'Ë',
41         'r' => 'ý',
42         'R' => 'Ý',
43         't' => 'þ',
44         'T' => 'Þ',
45         'y' => 'ÿ',
46         'Y' => 'Ÿ',
47         'u' => 'ü',
48         'U' => 'Ü',
49         'i' => 'ï',
50         'I' => 'Ï',
51         'o' => 'ö',
52         'O' => 'Ö',
53         'p' => 'œ',
54         'P' => 'Œ',
55         '[' => '«',
56         '{' => '‹',
57         ']' => '»',
58         '}' => '›',
59
60         'a' => 'ä',
61         'A' => 'Ä',
62         's' => 'ß',
63         'S' => $V ge v1.3 ? 'ẞ' : '¶',
64         'd' => $V ge v1.2 ? 'đ' : 'ð',
65         'D' => $V ge v1.2 ? 'Đ' : 'Ð',
66         'f' => 'è',
67         'F' => 'È',
68         'g' => 'é',
69         'G' => 'É',
70         'h' => 'ù',
71         'H' => 'Ù',
72         'j' => 'ú',
73         'J' => 'Ú',
74         'k' => 'ij',
75         'K' => 'IJ',
76         'l' => 'ø',
77         'L' => 'Ø',
78         ';' => $V ge v1.2 ? '°' : "\N{COMBINING DIAERESIS}",
79         ':' => '·',
80         "'" => "\N{COMBINING ACUTE ACCENT}",
81         '"' => $V ge v1.2 ? "\N{COMBINING DIAERESIS}" : '†',
82         '`' => "\N{COMBINING GRAVE ACCENT}",
83         '~' => "\N{COMBINING TILDE}",
84
85         '\\'=> '¬',
86         '|' => '¦',
87         'z' => 'à',
88         'Z' => 'À',
89         'x' => 'á',
90         'X' => 'Á',
91         'c' => 'ç',
92         'C' => 'Ç',
93         'v' => 'ì',
94         'V' => 'Ì',
95         'b' => 'í',
96         'B' => 'Í',
97         'n' => 'ñ',
98         'N' => 'Ñ',
99         'm' => 'Ω',
100         'M' => '√', # ±
101         ',' => 'ò',
102         '<' => 'Ò',
103         '.' => 'ó',
104         '>' => 'Ó',
105         '/' => '¿',
106         '?' => '…',
107         },
108
109         # greek
110         'm' => {
111                 'a' => 'α',
112                 'b' => 'β',
113                 'g' => 'γ',
114                 'd' => 'δ',
115                 'e' => 'ε',
116                 'z' => 'ζ',
117                 'i' => 'η',
118                 'h' => 'θ',
119                 'j' => 'ι',
120                 'k' => 'κ',
121                 'l' => 'λ',
122                 'm' => 'μ',
123                 'n' => 'ν',
124                 'x' => 'ξ',
125                 'o' => 'ο',
126                 'p' => 'π',
127                 'r' => 'ρ',
128                 's' => 'σ',
129                 't' => 'τ',
130                 'y' => 'υ',
131                 'f' => 'φ',
132                 'c' => 'χ',
133                 'w' => 'ψ',
134                 'q' => 'ω',
135
136                 # aliases
137                 'v' => \'mb',
138                 'V' => \'mB',
139                 'u' => \'mq',
140                 'U' => \'mQ',
141
142                 # suþscript
143                 '1' => '¹',
144                 '2' => '²',
145                 '3' => '³',
146                 '4' => '⁴',
147                 '5' => '⁵',
148                 '6' => '⁶',
149                 '7' => '⁷',
150                 '8' => '⁸',
151                 '9' => '⁹',
152                 '0' => '⁰',
153                 '!' => '₁',
154                 '@' => '₂',
155                 '#' => '₃',
156                 '$' => '₄',
157                 '%' => '₅',
158                 '^' => '₆',
159                 '&' => '₇',
160                 '*' => '₈',
161                 '(' => '₉',
162                 ')' => '₀',
163         },
164
165         # maths
166         'M' => {
167                 '!' => '≠',
168                 '~' => '≈',
169                 '=' => '≝',
170                 '>' => '≥',
171                 '<' => '≤',
172                 '-' => '±',
173                 'i' => '∞',
174                 'n' => 'ⁿ',
175                 'r' => '√',
176                 '3' => '∛',
177                 '4' => '∜',
178                 '%' => '‰',
179
180                 'f' => 'ƒ',
181                 'S' => '∫',
182                 "'" => '′',
183                 '"' => '″',
184                 'p' => '∂',
185                 'd' => 'Δ',
186                 'D' => '∇',
187                 '+' => '⊕',
188                 '*' => '⊗',
189                 '^' => '℘',
190
191                 's' => '∩',
192                 'u' => '∪',
193                 'U' => '∖',
194                 'O' => '∅',
195                 'g' => '⊂',
196                 'G' => '⊃',
197                 'h' => '⊄',
198                 'H' => '⊅',
199                 'b' => '⊆',
200                 'B' => '⊇',
201                 'm' => '∈',
202                 'M' => '∉',
203                 'k' => '∋',
204                 'K' => '∌',
205
206                 'A' => '∀',
207                 'E' => '∃',
208                 'X' => '∄',
209                 '&' => '∧',
210                 '|' => '∨',
211                 'c' => '∝',
212                 '.' => '⋅',
213                 'o' => '∘',
214                 ':' => '∴',
215                 ';' => '∵',
216                 'z' => '↯',
217                 'F' => '∎',
218
219                 'R' => 'ℝ',
220                 'C' => 'ℂ',
221                 'N' => 'ℕ',
222                 'P' => 'ℙ',
223                 'Q' => 'ℚ',
224                 'Z' => 'ℤ',
225                 '9' => '∟',
226                 '8' => '∠',
227                 '7' => '∡',
228                 'l' => '∥',
229                 'L' => '∦',
230         },
231
232         # symbols
233         $presymbol => {
234                 't' => '™',
235                 'c' => '©',
236                 'p' => '℗',
237                 'r' => '®',
238                         $V lt v1.3 ? (
239                 '1' => '¼',
240                 '2' => '½',
241                 '3' => '¾',
242                 '4' => '⅓',
243                 '5' => '⅔',
244                 's' => '℠',
245                         ) : (
246                 's' => '§',
247                 '1' => '№',
248                 '2' => '½',
249                 '3' => '⅓',
250                 '4' => '¼',
251                 '5' => '⅔',
252                 '6' => '¾',
253                 'T' => '℠',
254                         ),
255
256                 # arrows
257                 'h' => '←',
258                 'H' => '⇐',
259                 'j' => '↓',
260                 'J' => '⇓',
261                 'k' => '↑',
262                 'K' => '⇑',
263                 'l' => '→',
264                 'L' => '⇒',
265                 'u' => '↖',
266                 'U' => '⇖',
267                 'i' => '↗',
268                 'I' => '⇗',
269                 'n' => '↙',
270                 'N' => '⇙',
271                 'm' => '↘',
272                 'M' => '⇘',
273                 '=' => '↔',
274                 '+' => '⇔',
275         },
276 );
277
278 # uppercase greek
279 $rows{m}{uc $_} //= uc $rows{m}{$_} for keys %{ $rows{m} };
280
281 +{
282         %{ kbmodes(\%rows) },
283         mode => {
284                 ''  => 'option-shifted ⌥',
285                 'm' => 'Ω greek prefix ⌥m',
286                 'M' => '√ maths prefix ⌥M',
287                 $presymbol => "$rows{''}{$presymbol} symbol prefix ⌥$presymbol",
288         },
289         version => '1.2',
290         title => 'EurKEY',
291         category => 'latin/thirdparty/xorg',
292         intro => join("\n",
293                 'Third-party proposal <a href="https://eurkey.steffen.bruentjen.eu/">EurKEY</a>',
294                 '<abbr title="last updated 2017-05-15">v1.3</abbr> by Steffen Brüntjen',
295                 'supporting most European languages while pressing AltGr or ⌥ Option.',
296                 'Selectable in <abbr title="distributed with X since 2014">Linux</abbr>',
297                 'and available for <a href="/keyboard/altgr/windows">Windows</a>',
298                 'or <a href="/keyboard/altgr/macos">macOS</a>.',
299         ),
300         description => [
301                 "An interactive map of EurKEY, the European Keyboard Layout.",
302         ],
303         image => 'data/keyboard/thumb/eurkeyboard.jpg',
304         imagealt => 'Right alt on the EurKEYboard created by Psy-Q',
305 }