keyboard/altgr/index: move ctrl rows to distinct inventory mode
[sheet.git] / keyboard / altgr / weur.eng.inc.pl
1 use utf8;
2 use strict;
3 use warnings;
4 no warnings 'qw';
5 use Shiar_Sheet::KeyboardChars 'kbmodes';
6
7 my %rows = (
8         '' => {
9                 '!'  => "\N{COMBINING DOT ABOVE}",
10                 '"'  => "\N{COMBINING DIAERESIS}",
11                 '#'  => "\N{COMBINING MACRON}",
12                 '$'  => '¥',
13                 '%'  => '£',
14                 '&'  => '‚',
15                 "'"  => "\N{COMBINING ACUTE ACCENT}",
16                 '('  => '‘',
17                 ')'  => '’',
18                 '*'  => 'µ',
19                 '+'  => "\N{COMBINING RING ABOVE}",
20                 ','  => "\N{COMBINING CEDILLA}",
21                 '-'  => '–',
22                 '.'  => 'œ',
23                 '/'  => '¿',
24                 '0'  => '”',
25                 '1'  => '¡',
26                 '2'  => '²',
27                 '3'  => '³',
28                 '4'  => '¢',
29                 '5'  => '€',
30                 '6'  => "\N{COMBINING CIRCUMFLEX ACCENT}",
31                 '7'  => '„',
32                 '8'  => 'ß',
33                 '9'  => '“',
34                 ':'  => 'Ô',
35                 ';'  => 'ô',
36                 '<'  => "\N{COMBINING OGONEK}",
37                 '='  => '°',
38                 '>'  => 'Œ',
39                 '?'  => "\N{COMBINING SHORT STROKE OVERLAY}",
40                 '@'  => "\N{COMBINING DOUBLE ACUTE ACCENT}",
41                 '['  => '«',
42                 "\\" => 'ij',
43                 ']'  => '»',
44                 '^'  => "\N{COMBINING CARON}",
45                 '_'  => '—',
46                 '`'  => "\N{COMBINING GRAVE ACCENT}",
47                 'a'  => 'ä',
48                 'A'  => 'Ä',
49                 'B'  => 'Õ',
50                 'b'  => 'õ',
51                 'C'  => 'Ç',
52                 'c'  => 'ç',
53                 'D'  => 'É',
54                 'd'  => 'é',
55                 'e'  => 'ë',
56                 'E'  => 'Ë',
57                 'F'  => 'Ê',
58                 'f'  => 'ê',
59                 'G'  => 'Î',
60                 'g'  => 'î',
61                 'h'  => 'û',
62                 'H'  => 'Û',
63                 'I'  => 'Ï',
64                 'i'  => 'ï',
65                 'j'  => 'ú',
66                 'J'  => 'Ú',
67                 'k'  => 'í',
68                 'K'  => 'Í',
69                 'L'  => 'Ó',
70                 'l'  => 'ó',
71                 'm'  => 'ì',
72                 'M'  => 'Ì',
73                 'n'  => 'ñ',
74                 'N'  => 'Ñ',
75                 'o'  => 'ö',
76                 'O'  => 'Ö',
77                 'P'  => 'Ò',
78                 'p'  => 'ò',
79                 'Q'  => 'Å',
80                 'q'  => 'å',
81                 'R'  => 'È',
82                 'r'  => 'è',
83                 'S'  => 'À',
84                 's'  => 'à',
85                 'T'  => 'Ø',
86                 't'  => 'ø',
87                 'u'  => 'ü',
88                 'U'  => 'Ü',
89                 'v'  => 'ã',
90                 'V'  => 'Ã',
91                 'W'  => 'Æ',
92                 'w'  => 'æ',
93                 'x'  => 'â',
94                 'X'  => 'Â',
95                 'Y'  => 'Ù',
96                 'y'  => 'ù',
97                 'z'  => 'á',
98                 'Z'  => 'Á',
99                 '{'  => '‹',
100                 '|'  => 'IJ',
101                 '}'  => '›',
102                 '~'  => "\N{COMBINING TILDE}",
103         },
104         '*' => {
105                 # dead_greek digraphs from data/xorg-compose
106                 'A' => 'Α',
107                 'a' => 'α',
108                 'B' => 'Β',
109                 'b' => 'β',
110                 'D' => 'Δ',
111                 'd' => 'δ',
112                 'E' => 'Ε',
113                 'e' => 'ε',
114                 'F' => 'Φ',
115                 'f' => 'φ',
116                 'G' => 'Γ',
117                 'g' => 'γ',
118                 'H' => 'Η',
119                 'h' => 'η',
120                 'I' => 'Ι',
121                 'i' => 'ι',
122                 'J' => 'Θ',
123                 'j' => 'θ',
124                 'K' => 'Κ',
125                 'k' => 'κ',
126                 'L' => 'Λ',
127                 'l' => 'λ',
128                 'M' => 'Μ',
129                 'm' => 'μ',
130                 'N' => 'Ν',
131                 'n' => 'ν',
132                 'O' => 'Ο',
133                 'o' => 'ο',
134                 'P' => 'Π',
135                 'p' => 'π',
136                 'Q' => 'Χ',
137                 'q' => 'χ',
138                 'R' => 'Ρ',
139                 'r' => 'ρ',
140                 'S' => 'Σ',
141                 's' => 'σ',
142                 'T' => 'Τ',
143                 't' => 'τ',
144                 'U' => 'Υ',
145                 'u' => 'υ',
146                 'W' => 'Ω',
147                 'w' => 'ω',
148                 'X' => 'Ξ',
149                 'x' => 'ξ',
150                 'Y' => 'Ψ',
151                 'y' => 'ψ',
152                 'Z' => 'Ζ',
153                 'z' => 'ζ',
154                 '*' => 'µ', # MICRO SIGN at space and double mode
155         },
156 );
157
158 our %get;
159 my $dweur = $get{map} && $get{map} eq 'dvorak';
160 if ($dweur) {
161         my $dq = q{
162                 'z ,l .d pj yk  fq gt  r, l'
163                 dv hb s8  tw 8.
164                 ;s qp jr ky xm  bx m; wf vh zg
165         };
166         my %dq = split //, $dq =~ s/\s//gr;  # dvorak => qwerty key
167
168         my %uc = (qw{ ' "  , <  . >  ; :  - _  8 * }, map {lc, uc} 'a'..'z');
169         $dq{ $uc{$_} } = $uc{ $dq{$_} } for keys %dq;  # same shifted
170
171         @{ $rows{''} }{keys %dq} = map { $rows{''}{$_} } values %dq;
172         $rows{S} = delete $rows{'*'};
173 }
174
175 +{
176         %{ kbmodes(\%rows) },
177         mode => {
178                 ''  => 'altgr-shifted ⌥',
179                 '*' => 'μ greek prefix ⌥*',
180         },
181         version => '1.0', # upstream v2.0 2021/04/12
182         title => $dweur ? 'dWEURak' : 'Western European',
183         category => 'latin/thirdparty/xorg',
184         intro => join("\n",
185                 'Layout (<a href="https://altgr-weur.eu/" target=_blank>available</a> for major OSes)',
186                 'to provide all accented characters commonly used',
187                 'in 10 Western European languages available through one AltGr keystroke.',
188         ),
189         description => [
190                 "QWERTY for Western European languages",
191         ],
192 }