keyboard/altgr: scalar references indicate aliases
[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                 'u' => \'mq',
139
140                 # suþscript
141                 '1' => '¹',
142                 '2' => '²',
143                 '3' => '³',
144                 '4' => '⁴',
145                 '5' => '⁵',
146                 '6' => '⁶',
147                 '7' => '⁷',
148                 '8' => '⁸',
149                 '9' => '⁹',
150                 '0' => '⁰',
151                 '!' => '₁',
152                 '@' => '₂',
153                 '#' => '₃',
154                 '$' => '₄',
155                 '%' => '₅',
156                 '^' => '₆',
157                 '&' => '₇',
158                 '*' => '₈',
159                 '(' => '₉',
160                 ')' => '₀',
161         },
162
163         # maths
164         'M' => {
165                 '!' => '≠',
166                 '~' => '≈',
167                 '=' => '≝',
168                 '>' => '≥',
169                 '<' => '≤',
170                 '-' => '±',
171                 'i' => '∞',
172                 'n' => 'ⁿ',
173                 'r' => '√',
174                 '3' => '∛',
175                 '4' => '∜',
176                 '%' => '‰',
177
178                 'f' => 'ƒ',
179                 'S' => '∫',
180                 "'" => '′',
181                 '"' => '″',
182                 'p' => '∂',
183                 'd' => 'Δ',
184                 'D' => '∇',
185                 '+' => '⊕',
186                 '*' => '⊗',
187                 '^' => '℘',
188
189                 's' => '∩',
190                 'u' => '∪',
191                 'U' => '∖',
192                 'O' => '∅',
193                 'g' => '⊂',
194                 'G' => '⊃',
195                 'h' => '⊄',
196                 'H' => '⊅',
197                 'b' => '⊆',
198                 'B' => '⊇',
199                 'm' => '∈',
200                 'M' => '∉',
201                 'k' => '∋',
202                 'K' => '∌',
203
204                 'A' => '∀',
205                 'E' => '∃',
206                 'X' => '∄',
207                 '&' => '∧',
208                 '|' => '∨',
209                 'c' => '∝',
210                 '.' => '⋅',
211                 'o' => '∘',
212                 ':' => '∴',
213                 ';' => '∵',
214                 'z' => '↯',
215                 'F' => '∎',
216
217                 'R' => 'ℝ',
218                 'C' => 'ℂ',
219                 'N' => 'ℕ',
220                 'P' => 'ℙ',
221                 'Q' => 'ℚ',
222                 'Z' => 'ℤ',
223                 '9' => '∟',
224                 '8' => '∠',
225                 '7' => '∡',
226                 'l' => '∥',
227                 'L' => '∦',
228         },
229
230         # symbols
231         $presymbol => {
232                 't' => '™',
233                 'c' => '©',
234                 'p' => '℗',
235                 'r' => '®',
236                         $V lt v1.3 ? (
237                 '1' => '¼',
238                 '2' => '½',
239                 '3' => '¾',
240                 '4' => '⅓',
241                 '5' => '⅔',
242                 's' => '℠',
243                         ) : (
244                 's' => '§',
245                 '1' => '№',
246                 '2' => '½',
247                 '3' => '⅓',
248                 '4' => '¼',
249                 '5' => '⅔',
250                 '6' => '¾',
251                 'T' => '℠',
252                         ),
253
254                 # arrows
255                 'h' => '←',
256                 'H' => '⇐',
257                 'j' => '↓',
258                 'J' => '⇓',
259                 'k' => '↑',
260                 'K' => '⇑',
261                 'l' => '→',
262                 'L' => '⇒',
263                 'u' => '↖',
264                 'U' => '⇖',
265                 'i' => '↗',
266                 'I' => '⇗',
267                 'n' => '↙',
268                 'N' => '⇙',
269                 'm' => '↘',
270                 'M' => '⇘',
271                 '=' => '↔',
272                 '+' => '⇔',
273         },
274 );
275
276 +{
277         %{ kbmodes(\%rows) },
278         mode => {
279                 ''  => 'option-shifted ⌥',
280                 'm' => 'Ω greek prefix ⌥m',
281                 'M' => '√ maths prefix ⌥M',
282                 $presymbol => "$rows{''}{$presymbol} symbol prefix ⌥$presymbol",
283         },
284         version => '1.1',
285         title => 'EurKEY',
286         category => 'latin/thirdparty/xorg',
287         intro => join("\n",
288                 'Third-party proposal <a href="https://eurkey.steffen.bruentjen.eu/">EurKEY</a>',
289                 '<abbr title="last updated 2017-05-15">v1.3</abbr> by Steffen Brüntjen',
290                 'supporting most European languages while pressing AltGr or ⌥ Option.',
291                 'Selectable in <abbr title="distributed with X since 2014">Linux</abbr>',
292                 'and available for <a href="/keyboard/altgr/windows">Windows</a>',
293                 'or <a href="/keyboard/altgr/macos">macOS</a>.',
294         ),
295         description => [
296                 "An interactive map of EurKEY, the European Keyboard Layout.",
297         ],
298         image => 'data/keyboard/thumb/eurkeyboard.jpg',
299         imagealt => 'Right alt on the EurKEYboard created by Psy-Q',
300 }