use utf8;
use strict;
use warnings;
-our %rows = (
+use Shiar_Sheet::KeyboardChars 'kbmodes';
+
+my $V = v1.3;
+
+my $presymbol = $V ge v1.3 ? '\\' : '-';
+my %rows = (
+ '' => {
'1' => '¡',
'!' => '¹',
'2' => 'ª',
'@' => '²',
'3' => 'º',
'#' => '³',
- '4' => '€',
+ '4' => $V ge v1.1 ? '£' : '€',
'$' => '¥',
- '5' => '£',
+ '5' => $V ge v1.1 ? '€' : '£',
'%' => '¢',
'6' => "\N{COMBINING CIRCUMFLEX ACCENT}",
'^' => "\N{COMBINING CARON}",
'7' => "\N{COMBINING RING ABOVE}",
'&' => "\N{COMBINING MACRON}",
- '8' => "\N{DOUBLE LOW-9 QUOTATION MARK}", #XXX
- '*' => "\N{SINGLE LOW-9 QUOTATION MARK}", #XXX
+ '8' => "\N{DOUBLE LOW-9 QUOTATION MARK}",
+ '*' => "\N{SINGLE LOW-9 QUOTATION MARK}",
'9' => "\N{LEFT DOUBLE QUOTATION MARK}",
'(' => "\N{LEFT SINGLE QUOTATION MARK}",
'0' => "\N{RIGHT DOUBLE QUOTATION MARK}",
')' => "\N{RIGHT SINGLE QUOTATION MARK}",
- '-' => '©',
- '_' => '№',
+ '-' => $V ge v1.3 ? '✓' : '©',
+ '_' => $V ge v1.3 ? '✗' : '№',
'=' => '×',
'+' => '÷',
'q' => 'æ',
'a' => 'ä',
'A' => 'Ä',
's' => 'ß',
- 'S' => '¶',
- 'd' => 'ð',
- 'D' => 'Ð',
+ 'S' => $V ge v1.3 ? 'ẞ' : '¶',
+ 'd' => $V ge v1.2 ? 'đ' : 'ð',
+ 'D' => $V ge v1.2 ? 'Đ' : 'Ð',
'f' => 'è',
'F' => 'È',
'g' => 'é',
'K' => 'IJ',
'l' => 'ø',
'L' => 'Ø',
- ';' => "\N{COMBINING DIAERESIS}",
- ':' => '·', # periodcentered
+ ';' => $V ge v1.2 ? '°' : "\N{COMBINING DIAERESIS}",
+ ':' => '·',
"'" => "\N{COMBINING ACUTE ACCENT}",
- '"' => '†',
+ '"' => $V ge v1.2 ? "\N{COMBINING DIAERESIS}" : '†',
'`' => "\N{COMBINING GRAVE ACCENT}",
'~' => "\N{COMBINING TILDE}",
'n' => 'ñ',
'N' => 'Ñ',
'm' => 'Ω',
- 'M' => '±',
+ 'M' => '√', # ±
',' => 'ò',
'<' => 'Ò',
'.' => 'ó',
'>' => 'Ó',
'/' => '¿',
+ '?' => '…',
+ },
+
+ # greek
+ 'm' => {
+ 'a' => 'α',
+ 'b' => 'β',
+ 'g' => 'γ',
+ 'd' => 'δ',
+ 'e' => 'ε',
+ 'z' => 'ζ',
+ 'i' => 'η',
+ 'h' => 'θ',
+ 'j' => 'ι',
+ 'k' => 'κ',
+ 'l' => 'λ',
+ 'm' => 'μ',
+ 'n' => 'ν',
+ 'x' => 'ξ',
+ 'o' => 'ο',
+ 'p' => 'π',
+ 'r' => 'ρ',
+ 's' => 'σ',
+ 't' => 'τ',
+ 'y' => 'υ',
+ 'f' => 'φ',
+ 'c' => 'χ',
+ 'w' => 'ψ',
+ 'q' => 'ω',
+
+ # aliases
+ 'v' => \'mb',
+ 'V' => \'mB',
+ 'u' => \'mq',
+ 'U' => \'mQ',
+
+ # suþscript
+ '1' => '¹',
+ '2' => '²',
+ '3' => '³',
+ '4' => '⁴',
+ '5' => '⁵',
+ '6' => '⁶',
+ '7' => '⁷',
+ '8' => '⁸',
+ '9' => '⁹',
+ '0' => '⁰',
+ '!' => '₁',
+ '@' => '₂',
+ '#' => '₃',
+ '$' => '₄',
+ '%' => '₅',
+ '^' => '₆',
+ '&' => '₇',
+ '*' => '₈',
+ '(' => '₉',
+ ')' => '₀',
+ },
+
+ # maths
+ 'M' => {
+ '!' => '≠',
+ '~' => '≈',
+ '=' => '≝',
+ '>' => '≥',
+ '<' => '≤',
+ '-' => '±',
+ 'i' => '∞',
+ 'n' => 'ⁿ',
+ 'r' => '√',
+ '3' => '∛',
+ '4' => '∜',
+ '%' => '‰',
+
+ 'f' => 'ƒ',
+ 'S' => '∫',
+ "'" => '′',
+ '"' => '″',
+ 'p' => '∂',
+ 'd' => 'Δ',
+ 'D' => '∇',
+ '+' => '⊕',
+ '*' => '⊗',
+ '^' => '℘',
+
+ 's' => '∩',
+ 'u' => '∪',
+ 'U' => '∖',
+ 'O' => '∅',
+ 'g' => '⊂',
+ 'G' => '⊃',
+ 'h' => '⊄',
+ 'H' => '⊅',
+ 'b' => '⊆',
+ 'B' => '⊇',
+ 'm' => '∈',
+ 'M' => '∉',
+ 'k' => '∋',
+ 'K' => '∌',
+
+ 'A' => '∀',
+ 'E' => '∃',
+ 'X' => '∄',
+ '&' => '∧',
+ '|' => '∨',
+ 'c' => '∝',
+ '.' => '⋅',
+ 'o' => '∘',
+ ':' => '∴',
+ ';' => '∵',
+ 'z' => '↯',
+ 'F' => '∎',
+
+ 'R' => 'ℝ',
+ 'C' => 'ℂ',
+ 'N' => 'ℕ',
+ 'P' => 'ℙ',
+ 'Q' => 'ℚ',
+ 'Z' => 'ℤ',
+ '9' => '∟',
+ '8' => '∠',
+ '7' => '∡',
+ 'l' => '∥',
+ 'L' => '∦',
+ },
+
+ # symbols
+ $presymbol => {
+ 't' => '™',
+ 'c' => '©',
+ 'p' => '℗',
+ 'r' => '®',
+ $V lt v1.3 ? (
+ '1' => '¼',
+ '2' => '½',
+ '3' => '¾',
+ '4' => '⅓',
+ '5' => '⅔',
+ 's' => '℠',
+ ) : (
+ 's' => '§',
+ '1' => '№',
+ '2' => '½',
+ '3' => '⅓',
+ '4' => '¼',
+ '5' => '⅔',
+ '6' => '¾',
+ 'T' => '℠',
+ ),
+
+ # arrows
+ 'h' => '←',
+ 'H' => '⇐',
+ 'j' => '↓',
+ 'J' => '⇓',
+ 'k' => '↑',
+ 'K' => '⇑',
+ 'l' => '→',
+ 'L' => '⇒',
+ 'u' => '↖',
+ 'U' => '⇖',
+ 'i' => '↗',
+ 'I' => '⇗',
+ 'n' => '↙',
+ 'N' => '⇙',
+ 'm' => '↘',
+ 'M' => '⇘',
+ '=' => '↔',
+ '+' => '⇔',
+ },
);
+# uppercase greek
+$rows{m}{uc $_} //= uc $rows{m}{$_} for keys %{ $rows{m} };
+
+{
- %{ do 'keyboard/altgr/groups.inc.pl' },
- version => '1.0',
+ %{ kbmodes(\%rows) },
+ mode => {
+ '' => 'option-shifted ⌥',
+ 'm' => 'Ω greek prefix ⌥m',
+ 'M' => '√ maths prefix ⌥M',
+ $presymbol => "$rows{''}{$presymbol} symbol prefix ⌥$presymbol",
+ },
+ version => '1.2',
title => 'EurKEY',
+ category => 'latin/thirdparty/xorg',
intro => join("\n",
- 'Resulting <a href="/unicode">selection</a> of <a href="/charset">Unicode</a> characters',
- "while pressing ⌥ Option (Alt) with Apple's US (or US International) layout",
- 'on <abbr title="at least in Ventura 13.2">macOS</abbr>.',
- q{An alternative <a href="/keyboard/altgr/macos-abc">ABC Extended</a> is also available.},
- q{Different from <a href="/keyboard/altgr/windows">AltGr</a> on Windows.},
+ 'Third-party proposal <a href="https://eurkey.steffen.bruentjen.eu/">EurKEY</a>',
+ '<abbr title="last updated 2017-05-15">v1.3</abbr> by Steffen Brüntjen',
+ 'supporting most European languages while pressing AltGr or ⌥ Option.',
+ 'Selectable in <abbr title="distributed with X since 2014">Linux</abbr>',
+ 'and available for <a href="/keyboard/altgr/windows">Windows</a>',
+ 'or <a href="/keyboard/altgr/macos">macOS</a>.',
),
description => [
"An interactive map of EurKEY, the European Keyboard Layout.",
],
- image => 'keyboard/altgr/eurkeyboard.jpg',
+ image => 'data/keyboard/thumb/eurkeyboard.jpg',
+ imagealt => 'Right alt on the EurKEYboard created by Psy-Q',
}