7 my $presymbol = $V ge v1.3 ? '\\' : '-';
36 '4' => $V ge v1.1 ? '£' : '€',
38 '5' => $V ge v1.1 ? '€' : '£',
40 '6' => "\N{COMBINING CIRCUMFLEX ACCENT}",
41 '^' => "\N{COMBINING CARON}",
42 '7' => "\N{COMBINING RING ABOVE}",
43 '&' => "\N{COMBINING MACRON}",
44 '8' => "\N{DOUBLE LOW-9 QUOTATION MARK}",
45 '*' => "\N{SINGLE LOW-9 QUOTATION MARK}",
46 '9' => "\N{LEFT DOUBLE QUOTATION MARK}",
47 '(' => "\N{LEFT SINGLE QUOTATION MARK}",
48 '0' => "\N{RIGHT DOUBLE QUOTATION MARK}",
49 ')' => "\N{RIGHT SINGLE QUOTATION MARK}",
50 '-' => $V ge v1.3 ? '✓' : '©',
51 '_' => $V ge v1.3 ? '✗' : '№',
82 'S' => $V ge v1.3 ? 'ẞ' : '¶',
83 'd' => $V ge v1.2 ? 'đ' : 'ð',
84 'D' => $V ge v1.2 ? 'Đ' : 'Ð',
97 ';' => $V ge v1.2 ? '°' : "\N{COMBINING DIAERESIS}",
99 "'" => "\N{COMBINING ACUTE ACCENT}",
100 '"' => $V ge v1.2 ? "\N{COMBINING DIAERESIS}" : '†',
101 '`' => "\N{COMBINING GRAVE ACCENT}",
102 '~' => "\N{COMBINING TILDE}",
265 (map { ($presymbol.$_ => $arrows{$_}) } keys %arrows),
268 my $groups = do 'keyboard/altgr/groups.inc.pl';
270 '' => 'option-shifted ⌥',
271 'm' => 'Ω greek prefix ⌥m',
272 'M' => '√ maths prefix ⌥M',
273 $presymbol => "$rows{$presymbol} symbol prefix ⌥$presymbol",
275 for my $m (qw' m M ', $presymbol) {
276 $groups->{def}->{''}->{$m} = "g1 mode$m";
277 $groups->{mode}->{$m} //= "mode $m";
278 $groups->{def}->{$m} = {
279 (map {s/^.//r => 'g0'} grep {/^\Q$m/} keys %rows),
283 $groups->{flag}->{g1} = ['mode' => "switch to an alternate set of keys"];
290 'Third-party proposal <a href="https://eurkey.steffen.bruentjen.eu/">EurKEY</a>',
291 '<abbr title="last updated 2017-05-15">v1.3</abbr> by Steffen Brüntjen',
292 'supporting most European languages while pressing AltGr or ⌥ Option.',
293 'Selectable in <abbr title="distributed with X since 2014">Linux</abbr>',
294 'and available for <a href="/keyboard/altgr/windows">Windows</a>',
295 'or <a href="/keyboard/altgr/macos">macOS</a>.',
298 "An interactive map of EurKEY, the European Keyboard Layout.",
300 image => 'keyboard/altgr/eurkeyboard.jpg',