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