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