1 | /* $NetBSD: wskbdmap_mfii.c,v 1.25 2014/07/14 10:05:24 mbalmer Exp $ */ |
2 | |
3 | /*- |
4 | * Copyright (c) 1997 The NetBSD Foundation, Inc. |
5 | * All rights reserved. |
6 | * |
7 | * This code is derived from software contributed to The NetBSD Foundation |
8 | * by Juergen Hannken-Illjes. |
9 | * |
10 | * Redistribution and use in source and binary forms, with or without |
11 | * modification, are permitted provided that the following conditions |
12 | * are met: |
13 | * 1. Redistributions of source code must retain the above copyright |
14 | * notice, this list of conditions and the following disclaimer. |
15 | * 2. Redistributions in binary form must reproduce the above copyright |
16 | * notice, this list of conditions and the following disclaimer in the |
17 | * documentation and/or other materials provided with the distribution. |
18 | * |
19 | * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS |
20 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
21 | * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
22 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS |
23 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
24 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
25 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
26 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
27 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
28 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
29 | * POSSIBILITY OF SUCH DAMAGE. |
30 | */ |
31 | |
32 | #include <sys/cdefs.h> |
33 | __KERNEL_RCSID(0, "$NetBSD: wskbdmap_mfii.c,v 1.25 2014/07/14 10:05:24 mbalmer Exp $" ); |
34 | |
35 | #include "opt_wskbdmap.h" |
36 | #include <sys/types.h> |
37 | #include <dev/wscons/wsksymdef.h> |
38 | #include <dev/wscons/wsksymvar.h> |
39 | #include <dev/pckbport/wskbdmap_mfii.h> |
40 | |
41 | #define KC(n) KS_KEYCODE(n) |
42 | |
43 | static const keysym_t pckbd_keydesc_us[] = { |
44 | /* pos command normal shifted */ |
45 | KC(1), KS_Cmd_Debugger, KS_Escape, |
46 | KC(2), KS_1, KS_exclam, |
47 | KC(3), KS_2, KS_at, |
48 | KC(4), KS_3, KS_numbersign, |
49 | KC(5), KS_4, KS_dollar, |
50 | KC(6), KS_5, KS_percent, |
51 | KC(7), KS_6, KS_asciicircum, |
52 | KC(8), KS_7, KS_ampersand, |
53 | KC(9), KS_8, KS_asterisk, |
54 | KC(10), KS_9, KS_parenleft, |
55 | KC(11), KS_0, KS_parenright, |
56 | KC(12), KS_minus, KS_underscore, |
57 | KC(13), KS_equal, KS_plus, |
58 | KC(14), KS_Cmd_ResetEmul, KS_Delete, |
59 | KC(15), KS_Tab, |
60 | KC(16), KS_q, |
61 | KC(17), KS_w, |
62 | KC(18), KS_e, |
63 | KC(19), KS_r, |
64 | KC(20), KS_t, |
65 | KC(21), KS_y, |
66 | KC(22), KS_u, |
67 | KC(23), KS_i, |
68 | KC(24), KS_o, |
69 | KC(25), KS_p, |
70 | KC(26), KS_bracketleft, KS_braceleft, |
71 | KC(27), KS_bracketright, KS_braceright, |
72 | KC(28), KS_Return, |
73 | KC(29), KS_Cmd1, KS_Control_L, |
74 | KC(30), KS_a, |
75 | KC(31), KS_s, |
76 | KC(32), KS_d, |
77 | KC(33), KS_f, |
78 | KC(34), KS_g, |
79 | KC(35), KS_h, |
80 | KC(36), KS_j, |
81 | KC(37), KS_k, |
82 | KC(38), KS_l, |
83 | KC(39), KS_semicolon, KS_colon, |
84 | KC(40), KS_apostrophe, KS_quotedbl, |
85 | KC(41), KS_grave, KS_asciitilde, |
86 | KC(42), KS_Shift_L, |
87 | KC(43), KS_backslash, KS_bar, |
88 | KC(44), KS_z, |
89 | KC(45), KS_x, |
90 | KC(46), KS_c, |
91 | KC(47), KS_v, |
92 | KC(48), KS_b, |
93 | KC(49), KS_n, |
94 | KC(50), KS_m, |
95 | KC(51), KS_comma, KS_less, |
96 | KC(52), KS_period, KS_greater, |
97 | KC(53), KS_slash, KS_question, |
98 | KC(54), KS_Shift_R, |
99 | KC(55), KS_KP_Multiply, |
100 | KC(56), KS_Cmd2, KS_Alt_L, |
101 | KC(57), KS_space, |
102 | KC(58), KS_Caps_Lock, |
103 | KC(59), KS_Cmd_Screen0, KS_f1, |
104 | KC(60), KS_Cmd_Screen1, KS_f2, |
105 | KC(61), KS_Cmd_Screen2, KS_f3, |
106 | KC(62), KS_Cmd_Screen3, KS_f4, |
107 | KC(63), KS_Cmd_Screen4, KS_f5, |
108 | KC(64), KS_Cmd_Screen5, KS_f6, |
109 | KC(65), KS_Cmd_Screen6, KS_f7, |
110 | KC(66), KS_Cmd_Screen7, KS_f8, |
111 | KC(67), KS_Cmd_Screen8, KS_f9, |
112 | KC(68), KS_Cmd_Screen9, KS_f10, |
113 | KC(69), KS_Num_Lock, |
114 | KC(70), KS_Hold_Screen, |
115 | KC(71), KS_KP_Home, KS_KP_7, |
116 | KC(72), KS_KP_Up, KS_KP_8, |
117 | KC(73), KS_Cmd_ScrollFastUp, KS_KP_Prior, KS_KP_9, |
118 | KC(74), KS_KP_Subtract, |
119 | KC(75), KS_KP_Left, KS_KP_4, |
120 | KC(76), KS_KP_Begin, KS_KP_5, |
121 | KC(77), KS_KP_Right, KS_KP_6, |
122 | KC(78), KS_KP_Add, |
123 | KC(79), KS_KP_End, KS_KP_1, |
124 | KC(80), KS_KP_Down, KS_KP_2, |
125 | KC(81), KS_Cmd_ScrollFastDown, KS_KP_Next, KS_KP_3, |
126 | KC(82), KS_KP_Insert, KS_KP_0, |
127 | KC(83), KS_KP_Delete, KS_KP_Decimal, |
128 | KC(87), KS_f11, |
129 | KC(88), KS_f12, |
130 | KC(127), KS_Pause, /* Break */ |
131 | KC(136), KS_Help, |
132 | KC(137), KS_Stop, |
133 | KC(138), KS_Again, |
134 | KC(139), KS_Props, |
135 | KC(140), KS_Undo, |
136 | KC(141), KS_Front, |
137 | KC(142), KS_Copy, |
138 | KC(143), KS_Open, |
139 | KC(144), KS_Paste, |
140 | KC(145), KS_Find, |
141 | KC(146), KS_Cut, |
142 | KC(156), KS_KP_Enter, |
143 | KC(157), KS_Control_R, |
144 | KC(160), KS_Cmd_VolumeToggle, |
145 | KC(170), KS_Print_Screen, |
146 | KC(174), KS_Cmd_VolumeDown, |
147 | KC(176), KS_Cmd_VolumeUp, |
148 | KC(181), KS_KP_Divide, |
149 | KC(183), KS_Print_Screen, |
150 | KC(184), KS_Alt_R, KS_Multi_key, |
151 | #if 0 |
152 | KC(198), KS_Cmd_ResetClose, /* CTL-Break */ |
153 | #endif |
154 | KC(199), KS_Home, |
155 | KC(200), KS_Up, |
156 | KC(201), KS_Cmd_ScrollFastUp, KS_Prior, |
157 | KC(203), KS_Left, |
158 | KC(205), KS_Right, |
159 | KC(207), KS_End, |
160 | KC(208), KS_Down, |
161 | KC(209), KS_Cmd_ScrollFastDown, KS_Next, |
162 | KC(210), KS_Insert, |
163 | KC(211), KS_Delete, |
164 | KC(219), KS_Meta_L, |
165 | KC(220), KS_Meta_R, |
166 | KC(221), KS_Menu, |
167 | }; |
168 | |
169 | #ifndef WSKBD_USONLY |
170 | static const keysym_t pckbd_keydesc_gr[] = { |
171 | /* pos normal shifted altgr shift-altgr */ |
172 | KC(14), KS_Delete, KS_BackSpace, |
173 | KC(16), KS_q, KS_Q, KS_semicolon, KS_colon, |
174 | KC(17), KS_w, KS_W, KS_gr_teliko_s, KS_gr_S, |
175 | KC(18), KS_e, KS_E, KS_gr_e, KS_gr_E, |
176 | KC(19), KS_r, KS_R, KS_gr_r, KS_gr_R, |
177 | KC(20), KS_t, KS_T, KS_gr_t, KS_gr_T, |
178 | KC(21), KS_y, KS_Y, KS_gr_y, KS_gr_Y, |
179 | KC(22), KS_u, KS_U, KS_gr_u, KS_gr_U, |
180 | KC(23), KS_i, KS_I, KS_gr_i, KS_gr_I, |
181 | KC(24), KS_o, KS_O, KS_gr_o, KS_gr_O, |
182 | KC(25), KS_p, KS_P, KS_gr_p, KS_gr_P, |
183 | KC(30), KS_a, KS_A, KS_gr_a, KS_gr_A, |
184 | KC(31), KS_s, KS_S, KS_gr_s, KS_gr_S, |
185 | KC(32), KS_d, KS_D, KS_gr_d, KS_gr_D, |
186 | KC(33), KS_f, KS_F, KS_gr_f, KS_gr_F, |
187 | KC(34), KS_g, KS_G, KS_gr_g, KS_gr_G, |
188 | KC(35), KS_h, KS_H, KS_gr_h, KS_gr_H, |
189 | KC(36), KS_j, KS_J, KS_gr_j, KS_gr_J, |
190 | KC(37), KS_k, KS_K, KS_gr_k, KS_gr_K, |
191 | KC(38), KS_l, KS_L, KS_gr_l, KS_gr_L, |
192 | KC(39), KS_semicolon, KS_colon, KS_dead_semi, KS_dead_colon, |
193 | KC(44), KS_z, KS_Z, KS_gr_z, KS_gr_Z, |
194 | KC(45), KS_x, KS_X, KS_gr_x, KS_gr_X, |
195 | KC(46), KS_c, KS_C, KS_gr_c, KS_gr_C, |
196 | KC(47), KS_v, KS_V, KS_gr_v, KS_gr_V, |
197 | KC(48), KS_b, KS_B, KS_gr_b, KS_gr_B, |
198 | KC(49), KS_n, KS_N, KS_gr_n, KS_gr_N, |
199 | KC(50), KS_m, KS_M, KS_gr_m, KS_gr_M, |
200 | KC(184), KS_Mode_switch, KS_Multi_key, |
201 | }; |
202 | |
203 | static const keysym_t pckbd_keydesc_nl[] = { |
204 | /* pos normal shifted altgr shift-altgr */ |
205 | KC(2), KS_1, KS_exclam, KS_onesuperior, |
206 | KC(3), KS_2, KS_quotedbl, KS_twosuperior, |
207 | KC(4), KS_3, KS_numbersign, KS_threesuperior, |
208 | KC(5), KS_4, KS_dollar, KS_onequarter, |
209 | KC(6), KS_5, KS_percent, KS_onehalf, |
210 | KC(7), KS_6, KS_ampersand, KS_threequarters, |
211 | KC(8), KS_7, KS_underscore, KS_sterling, |
212 | KC(9), KS_8, KS_parenleft, KS_braceleft, |
213 | KC(10), KS_9, KS_parenright, KS_braceright, |
214 | KC(11), KS_0, KS_apostrophe, |
215 | KC(12), KS_slash, KS_question, KS_backslash, |
216 | KC(13), KS_degree, KS_dead_tilde, KS_dead_cedilla, |
217 | KC(18), KS_e, KS_E, KS_currency, |
218 | KC(19), KS_r, KS_R, KS_paragraph, |
219 | KC(26), KS_dead_diaeresis, KS_dead_circumflex, |
220 | KC(27), KS_asterisk, KS_bar, |
221 | KC(31), KS_s, KS_S, KS_ssharp, |
222 | KC(39), KS_plus, KS_plusminus, |
223 | KC(40), KS_dead_acute, KS_dead_grave, |
224 | KC(41), KS_at, KS_section, KS_notsign, |
225 | KC(43), KS_less, KS_greater, |
226 | KC(44), KS_z, KS_Z, KS_guillemotleft, |
227 | KC(45), KS_x, KS_X, KS_guillemotright, |
228 | KC(46), KS_c, KS_C, KS_cent, |
229 | KC(50), KS_m, KS_M, KS_mu, |
230 | KC(51), KS_comma, KS_semicolon, |
231 | KC(52), KS_period, KS_colon, KS_periodcentered, |
232 | KC(53), KS_minus, KS_equal, |
233 | KC(86), KS_bracketleft, KS_bracketright,KS_brokenbar, |
234 | KC(184), KS_Mode_switch, KS_Multi_key, |
235 | }; |
236 | |
237 | |
238 | static const keysym_t pckbd_keydesc_nl_nodead[] = { |
239 | /* pos normal shifted altgr shift-altgr */ |
240 | KC(13), KS_degree, KS_asciitilde, KS_cedilla, |
241 | KC(26), KS_quotedbl, KS_asciicircum, |
242 | /* KC(27), KS_asterisk, KS_bar, */ |
243 | KC(40), KS_apostrophe, KS_grave, |
244 | }; |
245 | |
246 | |
247 | static const keysym_t pckbd_keydesc_de[] = { |
248 | /* pos normal shifted altgr shift-altgr */ |
249 | KC(3), KS_2, KS_quotedbl, KS_twosuperior, |
250 | KC(4), KS_3, KS_section, KS_threesuperior, |
251 | KC(7), KS_6, KS_ampersand, |
252 | KC(8), KS_7, KS_slash, KS_braceleft, |
253 | KC(9), KS_8, KS_parenleft, KS_bracketleft, |
254 | KC(10), KS_9, KS_parenright, KS_bracketright, |
255 | KC(11), KS_0, KS_equal, KS_braceright, |
256 | KC(12), KS_ssharp, KS_question, KS_backslash, |
257 | KC(13), KS_dead_acute, KS_dead_grave, |
258 | KC(16), KS_q, KS_Q, KS_at, |
259 | KC(21), KS_z, |
260 | KC(26), KS_udiaeresis, |
261 | KC(27), KS_plus, KS_asterisk, KS_dead_tilde, |
262 | KC(39), KS_odiaeresis, |
263 | KC(40), KS_adiaeresis, |
264 | KC(41), KS_dead_circumflex,KS_dead_abovering, |
265 | KC(43), KS_numbersign, KS_apostrophe, |
266 | KC(44), KS_y, |
267 | KC(50), KS_m, KS_M, KS_mu, |
268 | KC(51), KS_comma, KS_semicolon, |
269 | KC(52), KS_period, KS_colon, |
270 | KC(53), KS_minus, KS_underscore, |
271 | KC(83), KS_KP_Delete, KS_KP_Separator, |
272 | KC(86), KS_less, KS_greater, KS_bar, KS_brokenbar, |
273 | KC(184), KS_Mode_switch, KS_Multi_key, |
274 | }; |
275 | |
276 | static const keysym_t pckbd_keydesc_de_nodead[] = { |
277 | /* pos normal shifted altgr shift-altgr */ |
278 | KC(13), KS_apostrophe, KS_grave, |
279 | KC(27), KS_plus, KS_asterisk, KS_asciitilde, |
280 | KC(41), KS_asciicircum, KS_degree, |
281 | }; |
282 | |
283 | static const keysym_t pckbd_keydesc_sg[] = { |
284 | /* pos normal shifted altgr shift-altgr */ |
285 | KC(2), KS_1, KS_plus, KS_bar, |
286 | KC(3), KS_2, KS_quotedbl, KS_at, |
287 | KC(4), KS_3, KS_asterisk, KS_numbersign, |
288 | KC(5), KS_4, KS_ccedilla, |
289 | KC(7), KS_6, KS_ampersand, KS_notsign, |
290 | KC(8), KS_7, KS_slash, KS_brokenbar, |
291 | KC(9), KS_8, KS_parenleft, KS_cent, |
292 | KC(10), KS_9, KS_parenright, |
293 | KC(11), KS_0, KS_equal, |
294 | KC(12), KS_apostrophe, KS_question, KS_dead_acute, |
295 | KC(13), KS_dead_circumflex,KS_dead_grave, KS_dead_tilde, |
296 | KC(18), KS_e, KS_E, KS_currency, |
297 | KC(21), KS_z, |
298 | KC(26), KS_udiaeresis, KS_egrave, KS_bracketleft, |
299 | KC(27), KS_dead_diaeresis, KS_exclam, KS_bracketright, |
300 | KC(39), KS_odiaeresis, KS_eacute, |
301 | KC(40), KS_adiaeresis, KS_agrave, KS_braceleft, |
302 | KC(41), KS_section, KS_degree, KS_dead_abovering, |
303 | KC(43), KS_dollar, KS_sterling, KS_braceright, |
304 | KC(44), KS_y, |
305 | KC(51), KS_comma, KS_semicolon, |
306 | KC(52), KS_period, KS_colon, |
307 | KC(53), KS_minus, KS_underscore, |
308 | KC(86), KS_less, KS_greater, KS_backslash, |
309 | KC(184), KS_Mode_switch, KS_Multi_key, |
310 | }; |
311 | |
312 | static const keysym_t pckbd_keydesc_sg_nodead[] = { |
313 | /* pos normal shifted altgr shift-altgr */ |
314 | KC(12), KS_apostrophe, KS_question, KS_acute, |
315 | KC(13), KS_asciicircum, KS_grave, KS_asciitilde, |
316 | KC(27), KS_diaeresis, KS_exclam, KS_bracketright |
317 | }; |
318 | |
319 | static const keysym_t pckbd_keydesc_sf[] = { |
320 | /* pos normal shifted altgr shift-altgr */ |
321 | KC(26), KS_egrave, KS_udiaeresis, KS_bracketleft, |
322 | KC(39), KS_eacute, KS_odiaeresis, |
323 | KC(40), KS_agrave, KS_adiaeresis, KS_braceleft |
324 | }; |
325 | |
326 | static const keysym_t pckbd_keydesc_dk[] = { |
327 | /* pos normal shifted altgr shift-altgr */ |
328 | KC(3), KS_2, KS_quotedbl, KS_at, |
329 | KC(4), KS_3, KS_numbersign, KS_sterling, |
330 | KC(5), KS_4, KS_currency, KS_dollar, |
331 | KC(7), KS_6, KS_ampersand, |
332 | KC(8), KS_7, KS_slash, KS_braceleft, |
333 | KC(9), KS_8, KS_parenleft, KS_bracketleft, |
334 | KC(10), KS_9, KS_parenright, KS_bracketright, |
335 | KC(11), KS_0, KS_equal, KS_braceright, |
336 | KC(12), KS_plus, KS_question, |
337 | KC(13), KS_dead_acute, KS_dead_grave, KS_bar, |
338 | KC(26), KS_aring, |
339 | KC(27), KS_dead_diaeresis, KS_dead_circumflex, KS_dead_tilde, |
340 | KC(39), KS_ae, |
341 | KC(40), KS_oslash, |
342 | KC(41), KS_onehalf, KS_paragraph, |
343 | KC(43), KS_apostrophe, KS_asterisk, |
344 | KC(51), KS_comma, KS_semicolon, |
345 | KC(52), KS_period, KS_colon, |
346 | KC(53), KS_minus, KS_underscore, |
347 | KC(86), KS_less, KS_greater, KS_backslash, |
348 | KC(184), KS_Mode_switch, KS_Multi_key, |
349 | }; |
350 | |
351 | static const keysym_t pckbd_keydesc_dk_nodead[] = { |
352 | /* pos normal shifted altgr shift-altgr */ |
353 | KC(13), KS_apostrophe, KS_grave, KS_bar, |
354 | KC(27), KS_diaeresis, KS_asciicircum, KS_asciitilde, |
355 | }; |
356 | |
357 | static const keysym_t pckbd_keydesc_sv[] = { |
358 | /* pos normal shifted altgr shift-altgr */ |
359 | KC(12), KS_plus, KS_question, KS_backslash, |
360 | KC(27), KS_dead_diaeresis, KS_dead_circumflex, KS_dead_tilde, |
361 | KC(39), KS_odiaeresis, |
362 | KC(40), KS_adiaeresis, |
363 | KC(41), KS_paragraph, KS_onehalf, |
364 | KC(86), KS_less, KS_greater, KS_bar, |
365 | KC(184), KS_Mode_switch, KS_Multi_key, |
366 | }; |
367 | |
368 | static const keysym_t pckbd_keydesc_sv_nodead[] = { |
369 | /* pos normal shifted altgr shift-altgr */ |
370 | KC(13), KS_apostrophe, KS_grave, KS_bar, |
371 | KC(27), KS_diaeresis, KS_asciicircum, KS_asciitilde, |
372 | }; |
373 | |
374 | static const keysym_t pckbd_keydesc_no[] = { |
375 | /* pos normal shifted altgr shift-altgr */ |
376 | KC(13), KS_backslash, KS_dead_grave, KS_dead_acute, |
377 | KC(27), KS_dead_diaeresis, KS_dead_circumflex, KS_dead_tilde, |
378 | KC(39), KS_oslash, |
379 | KC(40), KS_ae, |
380 | KC(41), KS_bar, KS_paragraph, |
381 | KC(86), KS_less, KS_greater, |
382 | }; |
383 | |
384 | static const keysym_t pckbd_keydesc_no_nodead[] = { |
385 | /* pos normal shifted altgr shift-altgr */ |
386 | KC(13), KS_backslash, KS_grave, KS_acute, |
387 | KC(27), KS_diaeresis, KS_asciicircum, KS_asciitilde, |
388 | }; |
389 | |
390 | static const keysym_t pckbd_keydesc_fr[] = { |
391 | /* pos normal shifted altgr shift-altgr */ |
392 | KC(2), KS_ampersand, KS_1, |
393 | KC(3), KS_eacute, KS_2, KS_asciitilde, |
394 | KC(4), KS_quotedbl, KS_3, KS_numbersign, |
395 | KC(5), KS_apostrophe, KS_4, KS_braceleft, |
396 | KC(6), KS_parenleft, KS_5, KS_bracketleft, |
397 | KC(7), KS_minus, KS_6, KS_bar, |
398 | KC(8), KS_egrave, KS_7, KS_grave, |
399 | KC(9), KS_underscore, KS_8, KS_backslash, |
400 | KC(10), KS_ccedilla, KS_9, KS_asciicircum, |
401 | KC(11), KS_agrave, KS_0, KS_at, |
402 | KC(12), KS_parenright, KS_degree, KS_bracketright, |
403 | KC(13), KS_equal, KS_plus, KS_braceright, |
404 | KC(16), KS_a, |
405 | KC(17), KS_z, |
406 | KC(26), KS_dead_circumflex, KS_dead_diaeresis, |
407 | KC(27), KS_dollar, KS_sterling, KS_currency, |
408 | KC(30), KS_q, |
409 | KC(39), KS_m, |
410 | KC(40), KS_ugrave, KS_percent, |
411 | KC(41), KS_twosuperior, KS_asciitilde, |
412 | KC(43), KS_asterisk, KS_mu, |
413 | KC(44), KS_w, |
414 | KC(50), KS_comma, KS_question, |
415 | KC(51), KS_semicolon, KS_period, |
416 | KC(52), KS_colon, KS_slash, |
417 | KC(53), KS_exclam, KS_section, |
418 | KC(86), KS_less, KS_greater, |
419 | KC(184), KS_Mode_switch, KS_Multi_key, |
420 | }; |
421 | |
422 | static const keysym_t pckbd_keydesc_be[] = { |
423 | /* pos normal shifted altgr shift-altgr */ |
424 | KC(2), KS_ampersand, KS_1, KS_bar, |
425 | KC(3), KS_eacute, KS_2, KS_at, |
426 | KC(5), KS_apostrophe, KS_4, |
427 | KC(6), KS_parenleft, KS_5, |
428 | KC(7), KS_section, KS_6, KS_asciicircum, |
429 | KC(8), KS_egrave, KS_7, |
430 | KC(9), KS_exclam, KS_8, |
431 | KC(10), KS_ccedilla, KS_9, KS_braceleft, |
432 | KC(11), KS_agrave, KS_0, KS_braceright, |
433 | KC(12), KS_parenright, KS_degree, |
434 | KC(13), KS_minus, KS_underscore, |
435 | KC(26), KS_dead_circumflex, KS_dead_diaeresis, KS_bracketleft, |
436 | KC(27), KS_dollar, KS_asterisk, KS_bracketright, |
437 | KC(43), KS_mu, KS_sterling, KS_grave, |
438 | KC(40), KS_ugrave, KS_percent, KS_acute, |
439 | KC(41), KS_twosuperior, KS_threesuperior, |
440 | KC(53), KS_equal, KS_plus, KS_asciitilde, |
441 | KC(86), KS_less, KS_greater, KS_backslash, |
442 | }; |
443 | |
444 | static const keysym_t pckbd_keydesc_it[] = { |
445 | /* pos normal shifted altgr shift-altgr */ |
446 | KC(3), KS_2, KS_quotedbl, KS_twosuperior, |
447 | KC(4), KS_3, KS_sterling, KS_threesuperior, |
448 | KC(5), KS_4, KS_dollar, |
449 | KC(6), KS_5, KS_percent, |
450 | KC(7), KS_6, KS_ampersand, |
451 | KC(8), KS_7, KS_slash, |
452 | KC(9), KS_8, KS_parenleft, |
453 | KC(10), KS_9, KS_parenright, |
454 | KC(11), KS_0, KS_equal, |
455 | KC(12), KS_apostrophe, KS_question, |
456 | KC(13), KS_igrave, KS_asciicircum, |
457 | KC(26), KS_egrave, KS_eacute, KS_braceleft, KS_bracketleft, |
458 | KC(27), KS_plus, KS_asterisk, KS_braceright, KS_bracketright, |
459 | KC(39), KS_ograve, KS_Ccedilla, KS_at, |
460 | KC(40), KS_agrave, KS_degree, KS_numbersign, |
461 | KC(41), KS_backslash, KS_bar, |
462 | KC(43), KS_ugrave, KS_section, |
463 | KC(51), KS_comma, KS_semicolon, |
464 | KC(52), KS_period, KS_colon, |
465 | KC(53), KS_minus, KS_underscore, |
466 | KC(86), KS_less, KS_greater, |
467 | KC(184), KS_Mode_switch, KS_Multi_key, |
468 | }; |
469 | |
470 | static const keysym_t pckbd_keydesc_uk[] = { |
471 | /* pos normal shifted altgr shift-altgr */ |
472 | KC(2), KS_1, KS_exclam, KS_plusminus, KS_exclamdown, |
473 | KC(3), KS_2, KS_quotedbl, KS_twosuperior, KS_cent, |
474 | KC(4), KS_3, KS_sterling, KS_threesuperior, |
475 | KC(5), KS_4, KS_dollar, KS_acute, KS_currency, |
476 | KC(6), KS_5, KS_percent, KS_mu, KS_yen, |
477 | KC(7), KS_6, KS_asciicircum, KS_paragraph, |
478 | KC(8), KS_7, KS_ampersand, KS_periodcentered, KS_brokenbar, |
479 | KC(9), KS_8, KS_asterisk, KS_cedilla, KS_ordfeminine, |
480 | KC(10), KS_9, KS_parenleft, KS_onesuperior, KS_diaeresis, |
481 | KC(11), KS_0, KS_parenright, KS_masculine, KS_copyright, |
482 | KC(12), KS_minus, KS_underscore, KS_hyphen, KS_ssharp, |
483 | KC(13), KS_equal, KS_plus, KS_onehalf, KS_guillemotleft, |
484 | KC(40), KS_apostrophe, KS_at, KS_section, KS_Agrave, |
485 | KC(41), KS_grave, KS_grave, KS_agrave, KS_agrave, |
486 | KC(43), KS_numbersign, KS_asciitilde, KS_sterling, KS_thorn, |
487 | KC(86), KS_backslash, KS_bar, KS_Udiaeresis, |
488 | }; |
489 | |
490 | static const keysym_t pckbd_keydesc_jp[] = { |
491 | /* pos normal shifted altgr shift-altgr */ |
492 | KC(3), KS_2, KS_quotedbl, |
493 | KC(7), KS_6, KS_ampersand, |
494 | KC(8), KS_7, KS_apostrophe, |
495 | KC(9), KS_8, KS_parenleft, |
496 | KC(10), KS_9, KS_parenright, |
497 | KC(11), KS_0, |
498 | KC(12), KS_minus, KS_equal, |
499 | KC(13), KS_asciicircum, KS_asciitilde, |
500 | KC(26), KS_at, KS_grave, |
501 | KC(27), KS_bracketleft, KS_braceleft, |
502 | KC(39), KS_semicolon, KS_plus, |
503 | KC(40), KS_colon, KS_asterisk, |
504 | KC(41), KS_Zenkaku_Hankaku, /* replace grave/tilde */ |
505 | KC(43), KS_bracketright, KS_braceright, |
506 | KC(112), KS_Hiragana_Katakana, |
507 | KC(115), KS_backslash, KS_underscore, |
508 | KC(121), KS_Henkan, |
509 | KC(123), KS_Muhenkan, |
510 | KC(125), KS_backslash, KS_bar, |
511 | }; |
512 | |
513 | static const keysym_t pckbd_keydesc_es[] = { |
514 | /* pos normal shifted altgr shift-altgr */ |
515 | KC(2), KS_1, KS_exclam, KS_bar, |
516 | KC(3), KS_2, KS_quotedbl, KS_at, |
517 | KC(4), KS_3, KS_periodcentered, KS_numbersign, |
518 | KC(5), KS_4, KS_dollar, KS_asciitilde, |
519 | KC(7), KS_6, KS_ampersand, KS_notsign, |
520 | KC(8), KS_7, KS_slash, |
521 | KC(9), KS_8, KS_parenleft, |
522 | KC(10), KS_9, KS_parenright, |
523 | KC(11), KS_0, KS_equal, |
524 | KC(12), KS_apostrophe, KS_question, |
525 | KC(13), KS_exclamdown, KS_questiondown, |
526 | KC(18), KS_e, KS_E, KS_currency, |
527 | KC(26), KS_dead_grave, KS_dead_circumflex, KS_bracketleft, |
528 | KC(27), KS_plus, KS_asterisk, KS_bracketright, |
529 | KC(39), KS_ntilde, |
530 | KC(40), KS_dead_acute, KS_dead_diaeresis, KS_braceleft, |
531 | KC(41), KS_degree, KS_ordfeminine, KS_backslash, |
532 | KC(43), KS_ccedilla, KS_Ccedilla, KS_braceright, |
533 | KC(46), KS_c, KS_C, KS_cent, |
534 | KC(51), KS_comma, KS_semicolon, |
535 | KC(52), KS_period, KS_colon, |
536 | KC(53), KS_minus, KS_underscore, |
537 | KC(86), KS_less, KS_greater, |
538 | KC(184), KS_Mode_switch, KS_Multi_key, |
539 | }; |
540 | |
541 | static const keysym_t pckbd_keydesc_cz[] = { |
542 | /* pos normal shifted altgr shift-altgr */ |
543 | KC(2), KS_plus, KS_1, KS_asciitilde, |
544 | KC(3), KS_ecaron, KS_2, KS_dead_caron, |
545 | KC(4), KS_scaron, KS_3, KS_dead_circumflex, |
546 | KC(5), KS_ccaron, KS_4, KS_dead_breve, |
547 | KC(6), KS_rcaron, KS_5, KS_dead_abovering, |
548 | KC(7), KS_zcaron, KS_6, KS_dead_ogonek, |
549 | KC(8), KS_yacute, KS_7, KS_dead_grave, |
550 | KC(9), KS_aacute, KS_8, KS_dead_dotaccent, |
551 | KC(10), KS_iacute, KS_9, KS_dead_acute, |
552 | KC(11), KS_eacute, KS_0, KS_dead_hungarumlaut, |
553 | KC(12), KS_equal, KS_percent, KS_dead_diaeresis, |
554 | KC(13), KS_dead_acute, KS_dead_caron, KS_dead_cedilla, |
555 | KC(26), KS_uacute, KS_slash, |
556 | KC(27), KS_adiaeresis, KS_parenleft, KS_multiply, |
557 | KC(39), KS_uabovering, KS_quotedbl, KS_dollar, |
558 | KC(40), KS_section, KS_exclam, KS_ssharp, |
559 | KC(41), KS_ncaron, KS_parenright, KS_currency, |
560 | KC(51), KS_comma, KS_question, |
561 | KC(52), KS_period, KS_colon, |
562 | KC(53), KS_minus, KS_underscore, |
563 | KC(86), KS_ampersand, KS_asterisk, KS_less, |
564 | KC(16), KS_q, KS_Q, KS_backslash, |
565 | KC(17), KS_w, KS_W, KS_bar, |
566 | KC(31), KS_s, KS_S, KS_dstroke, |
567 | KC(32), KS_d, KS_D, KS_Dstroke, |
568 | KC(33), KS_f, KS_F, KS_bracketleft, |
569 | KC(34), KS_g, KS_G, KS_bracketright, |
570 | KC(37), KS_k, KS_K, KS_lstroke, |
571 | KC(38), KS_l, KS_L, KS_Lstroke, |
572 | KC(44), KS_z, KS_Z, KS_greater, |
573 | KC(45), KS_x, KS_X, KS_numbersign, |
574 | KC(47), KS_v, KS_V, KS_at, |
575 | KC(48), KS_b, KS_B, KS_braceleft, |
576 | KC(49), KS_n, KS_N, KS_braceright, |
577 | KC(184), KS_Mode_switch, KS_Multi_key, |
578 | }; |
579 | |
580 | static const keysym_t pckbd_keydesc_pt[] = { |
581 | /* pos normal shifted altgr shift-altgr */ |
582 | KC(3), KS_2, KS_quotedbl, KS_at, |
583 | KC(4), KS_3, KS_numbersign, KS_sterling, |
584 | KC(5), KS_4, KS_dollar, KS_section, |
585 | KC(7), KS_6, KS_ampersand, |
586 | KC(8), KS_7, KS_slash, KS_braceleft, |
587 | KC(9), KS_8, KS_parenleft, KS_bracketleft, |
588 | KC(10), KS_9, KS_parenright, KS_bracketright, |
589 | KC(11), KS_0, KS_equal, KS_braceright, |
590 | KC(12), KS_apostrophe, KS_question, |
591 | KC(13), KS_guillemotleft, KS_guillemotright, |
592 | KC(26), KS_plus, KS_asterisk, KS_dead_diaeresis, |
593 | KC(27), KS_dead_acute, KS_dead_grave, |
594 | KC(39), KS_ccedilla, KS_Ccedilla, |
595 | KC(40), KS_masculine, KS_ordfeminine, |
596 | KC(41), KS_backslash, KS_bar, |
597 | KC(43), KS_dead_tilde, KS_dead_circumflex, |
598 | KC(51), KS_comma, KS_semicolon, |
599 | KC(52), KS_period, KS_colon, |
600 | KC(53), KS_minus, KS_underscore, |
601 | KC(86), KS_less, KS_greater, |
602 | KC(184), KS_Mode_switch, KS_Multi_key, |
603 | }; |
604 | |
605 | static const keysym_t pckbd_keydesc_hu[] = { |
606 | /* pos normal shifted altgr shift-altgr */ |
607 | KC(2), KS_1, KS_apostrophe, KS_asciitilde, |
608 | KC(3), KS_2, KS_quotedbl, KS_dead_caron, |
609 | KC(4), KS_3, KS_plus, KS_asciicircum, |
610 | KC(5), KS_4, KS_exclam, KS_dead_breve, |
611 | KC(6), KS_5, KS_percent, KS_dead_abovering, |
612 | KC(7), KS_6, KS_slash, KS_dead_ogonek, |
613 | KC(8), KS_7, KS_equal, KS_grave, |
614 | KC(9), KS_8, KS_parenleft, KS_dead_dotaccent, |
615 | KC(10), KS_9, KS_parenright, KS_dead_acute, |
616 | KC(11), KS_odiaeresis, KS_Odiaeresis, KS_dead_hungarumlaut, |
617 | KC(12), KS_udiaeresis, KS_Udiaeresis, KS_dead_diaeresis, |
618 | KC(13), KS_oacute, KS_Oacute, KS_dead_cedilla, |
619 | KC(16), KS_q, KS_Q, KS_backslash, |
620 | KC(17), KS_w, KS_W, KS_bar, |
621 | KC(21), KS_z, |
622 | KC(26), KS_odoubleacute, KS_Odoubleacute,KS_division, |
623 | KC(27), KS_uacute, KS_Uacute, KS_multiply, |
624 | KC(33), KS_f, KS_F, KS_bracketleft, |
625 | KC(34), KS_g, KS_G, KS_bracketright, |
626 | KC(39), KS_eacute, KS_Eacute, KS_dollar, |
627 | KC(40), KS_aacute, KS_Aacute, KS_ssharp, |
628 | KC(41), KS_0, KS_section, |
629 | KC(43), KS_udoubleacute, KS_Udoubleacute,KS_currency, |
630 | KC(44), KS_y, KS_Y, KS_greater, |
631 | KC(45), KS_x, KS_X, KS_numbersign, |
632 | KC(46), KS_c, KS_C, KS_ampersand, |
633 | KC(47), KS_v, KS_V, KS_at, |
634 | KC(48), KS_b, KS_B, KS_braceleft, |
635 | KC(49), KS_n, KS_N, KS_braceright, |
636 | KC(51), KS_comma, KS_question, KS_semicolon, |
637 | KC(52), KS_period, KS_colon, |
638 | KC(53), KS_minus, KS_underscore, KS_asterisk, |
639 | KC(86), KS_iacute, KS_Iacute, KS_less, |
640 | KC(184), KS_Mode_switch, KS_Multi_key, |
641 | }; |
642 | |
643 | static const keysym_t pckbd_keydesc_us_declk[] = { |
644 | /* pos normal shifted altgr shift-altgr */ |
645 | KC(1), KS_grave, KS_asciitilde, /* replace escape */ |
646 | KC(41), KS_less, KS_greater, /* replace grave/tilde */ |
647 | KC(143), KS_Multi_key, /* left compose */ |
648 | KC(157), KS_Multi_key, /* right compose, replace right control */ |
649 | KC(87), KS_Cmd_Debugger, KS_Escape, /* replace F11 */ |
650 | KC(189), KS_f13, |
651 | KC(190), KS_f14, |
652 | KC(191), KS_Help, |
653 | KC(192), KS_Execute, |
654 | KC(193), KS_f17, |
655 | KC(183), KS_f18, |
656 | KC(70), KS_f19, /* replace scroll lock */ |
657 | KC(127), KS_f20, /* replace break */ |
658 | KC(69), KS_KP_F1, /* replace num lock */ |
659 | KC(181), KS_KP_F2, /* replace divide */ |
660 | KC(55), KS_KP_F3, /* replace multiply */ |
661 | KC(74), KS_KP_F4, /* replace subtract */ |
662 | |
663 | /* keypad is numbers only - no num lock */ |
664 | KC(71), KS_KP_7, |
665 | KC(72), KS_KP_8, |
666 | KC(73), KS_KP_9, |
667 | KC(75), KS_KP_4, |
668 | KC(76), KS_KP_5, |
669 | KC(77), KS_KP_6, |
670 | KC(79), KS_KP_1, |
671 | KC(80), KS_KP_2, |
672 | KC(81), KS_KP_3, |
673 | KC(82), KS_KP_0, |
674 | KC(83), KS_KP_Decimal, |
675 | |
676 | KC(206), KS_KP_Subtract, |
677 | KC(78), KS_KP_Separator, /* replace add */ |
678 | KC(199), KS_Find, /* replace home */ |
679 | KC(207), KS_Select, /* replace end */ |
680 | }; |
681 | |
682 | static const keysym_t pckbd_keydesc_us_dvorak[] = { |
683 | /* pos command normal shifted */ |
684 | KC(12), KS_bracketleft, KS_braceleft, |
685 | KC(13), KS_bracketright, KS_braceright, |
686 | KC(16), KS_apostrophe, KS_quotedbl, |
687 | KC(17), KS_comma, KS_less, |
688 | KC(18), KS_period, KS_greater, |
689 | KC(19), KS_p, |
690 | KC(20), KS_y, |
691 | KC(21), KS_f, |
692 | KC(22), KS_g, |
693 | KC(23), KS_c, |
694 | KC(24), KS_r, |
695 | KC(25), KS_l, |
696 | KC(26), KS_slash, KS_question, |
697 | KC(27), KS_equal, KS_plus, |
698 | KC(31), KS_o, |
699 | KC(32), KS_e, |
700 | KC(33), KS_u, |
701 | KC(34), KS_i, |
702 | KC(35), KS_d, |
703 | KC(36), KS_h, |
704 | KC(37), KS_t, |
705 | KC(38), KS_n, |
706 | KC(39), KS_s, |
707 | KC(40), KS_minus, KS_underscore, |
708 | KC(44), KS_semicolon, KS_colon, |
709 | KC(45), KS_q, |
710 | KC(46), KS_j, |
711 | KC(47), KS_k, |
712 | KC(48), KS_x, |
713 | KC(49), KS_b, |
714 | KC(51), KS_w, |
715 | KC(52), KS_v, |
716 | KC(53), KS_z, |
717 | }; |
718 | |
719 | static const keysym_t pckbd_keydesc_us_colemak[] = { |
720 | /* pos command normal shifted */ |
721 | KC(41), KS_grave, KS_asciitilde, KS_dead_tilde, KS_asciitilde, |
722 | KC(2), KS_1, KS_exclam, KS_exclamdown, KS_onesuperior, |
723 | KC(3), KS_2, KS_at, KS_masculine, KS_twosuperior, |
724 | KC(4), KS_3, KS_numbersign, KS_ordfeminine, KS_threesuperior, |
725 | KC(5), KS_4, KS_dollar, KS_cent, KS_sterling, |
726 | KC(6), KS_5, KS_percent, KS_asciitilde, KS_yen, |
727 | KC(7), KS_6, KS_asciicircum, KS_asciitilde, KS_asciitilde, |
728 | KC(8), KS_7, KS_ampersand, KS_eth, KS_ETH, |
729 | KC(9), KS_8, KS_asterisk, KS_thorn, KS_THORN, |
730 | KC(10), KS_9, KS_parenleft, KS_asciitilde, KS_asciitilde, |
731 | KC(11), KS_0, KS_parenright, KS_asciitilde, KS_asciitilde, |
732 | KC(12), KS_minus, KS_underscore, KS_asciitilde, KS_asciitilde, |
733 | KC(13), KS_equal, KS_plus, KS_multiply, KS_division, |
734 | KC(16), KS_q, KS_Q, KS_adiaeresis, KS_Adiaeresis, |
735 | KC(17), KS_w, KS_W, KS_aring, KS_Aring, |
736 | KC(18), KS_f, KS_F, KS_atilde, KS_Atilde, |
737 | KC(19), KS_p, KS_P, KS_oslash, KS_Ooblique, |
738 | KC(20), KS_g, KS_G, KS_asciitilde, KS_asciitilde, |
739 | KC(21), KS_j, KS_J, KS_asciitilde, KS_asciitilde, |
740 | KC(22), KS_l, KS_L, KS_asciitilde, KS_asciitilde, |
741 | KC(23), KS_u, KS_U, KS_uacute, KS_Uacute, |
742 | KC(24), KS_y, KS_Y, KS_udiaeresis, KS_Udiaeresis, |
743 | KC(25), KS_semicolon, KS_colon, KS_odiaeresis, KS_Odiaeresis, |
744 | KC(26), KS_bracketleft, KS_braceleft, KS_guillemotleft, KS_asciitilde, |
745 | KC(27), KS_bracketright, KS_braceright, KS_guillemotright, KS_asciitilde, |
746 | KC(43), KS_backslash, KS_bar, KS_asciitilde, KS_asciitilde, |
747 | KC(30), KS_a, KS_A, KS_aacute, KS_Aacute, |
748 | KC(31), KS_r, KS_R, KS_dead_grave, KS_asciitilde, |
749 | KC(32), KS_s, KS_S, KS_ssharp, KS_asciitilde, |
750 | KC(33), KS_t, KS_T, KS_dead_acute, KS_asciitilde, |
751 | KC(34), KS_d, KS_D, KS_dead_diaeresis, KS_asciitilde, |
752 | KC(35), KS_h, KS_H, KS_asciitilde, KS_asciitilde, |
753 | KC(36), KS_n, KS_N, KS_ntilde, KS_Ntilde, |
754 | KC(37), KS_e, KS_E, KS_eacute, KS_Eacute, |
755 | KC(38), KS_i, KS_I, KS_iacute, KS_Iacute, |
756 | KC(39), KS_o, KS_O, KS_oacute, KS_Oacute, |
757 | KC(40), KS_apostrophe, KS_quotedbl, KS_otilde, KS_Otilde, |
758 | KC(44), KS_z, KS_Z, KS_ae, KS_AE, |
759 | KC(45), KS_x, KS_X, KS_dead_circumflex, KS_asciitilde, |
760 | KC(46), KS_c, KS_C, KS_ccedilla, KS_Ccedilla, |
761 | KC(47), KS_v, KS_V, KS_asciitilde, KS_asciitilde, |
762 | KC(48), KS_b, KS_B, KS_asciitilde, KS_asciitilde, |
763 | KC(49), KS_k, KS_K, KS_asciitilde, KS_asciitilde, |
764 | KC(50), KS_m, KS_M, KS_asciitilde, KS_asciitilde, |
765 | KC(51), KS_comma, KS_less, KS_dead_cedilla, KS_asciitilde, |
766 | KC(52), KS_period, KS_greater, KS_asciitilde, KS_asciitilde, |
767 | KC(53), KS_slash, KS_question, KS_questiondown, KS_asciitilde, |
768 | KC(58), KS_BackSpace, |
769 | KC(86), KS_minus, KS_underscore, KS_asciitilde, KS_asciitilde, |
770 | KC(57), KS_space, KS_space, KS_space, KS_nobreakspace, |
771 | KC(184), KS_Mode_switch, KS_Multi_key, |
772 | }; |
773 | |
774 | static const keysym_t pckbd_keydesc_swapctrlcaps[] = { |
775 | /* pos command normal shifted */ |
776 | KC(29), KS_Caps_Lock, |
777 | KC(58), KS_Cmd1, KS_Control_L, |
778 | }; |
779 | |
780 | static const keysym_t pckbd_keydesc_iopener[] = { |
781 | /* pos command normal shifted */ |
782 | KC(59), KS_Cmd_Debugger, KS_Escape, |
783 | KC(60), KS_Cmd_Screen0, KS_f1, |
784 | KC(61), KS_Cmd_Screen1, KS_f2, |
785 | KC(62), KS_Cmd_Screen2, KS_f3, |
786 | KC(63), KS_Cmd_Screen3, KS_f4, |
787 | KC(64), KS_Cmd_Screen4, KS_f5, |
788 | KC(65), KS_Cmd_Screen5, KS_f6, |
789 | KC(66), KS_Cmd_Screen6, KS_f7, |
790 | KC(67), KS_Cmd_Screen7, KS_f8, |
791 | KC(68), KS_Cmd_Screen8, KS_f9, |
792 | KC(87), KS_Cmd_Screen9, KS_f10, |
793 | KC(88), KS_f11, |
794 | }; |
795 | #endif /* WSKBD_USONLY */ |
796 | |
797 | #define KBD_MAP(name, base, map) \ |
798 | { name, base, sizeof(map)/sizeof(keysym_t), map } |
799 | /* KBD_NULLMAP generates a entry for machine native variant. |
800 | the entry will be modified by machine dependent keyboard driver. */ |
801 | #define KBD_NULLMAP(name, base) { name, base, 0, 0 } |
802 | |
803 | const struct wscons_keydesc pckbd_keydesctab[] = { |
804 | KBD_MAP(KB_US, 0, pckbd_keydesc_us), |
805 | #ifndef WSKBD_USONLY |
806 | KBD_MAP(KB_DE, KB_US, pckbd_keydesc_de), |
807 | KBD_MAP(KB_DE | KB_NODEAD, KB_DE, pckbd_keydesc_de_nodead), |
808 | KBD_MAP(KB_SG, KB_US, pckbd_keydesc_sg), |
809 | KBD_MAP(KB_SG | KB_NODEAD, KB_SG, pckbd_keydesc_sg_nodead), |
810 | KBD_MAP(KB_SF, KB_SG, pckbd_keydesc_sf), |
811 | KBD_MAP(KB_SF | KB_NODEAD, KB_SF, pckbd_keydesc_sg_nodead), |
812 | KBD_MAP(KB_FR, KB_US, pckbd_keydesc_fr), |
813 | KBD_MAP(KB_BE, KB_FR, pckbd_keydesc_be), |
814 | KBD_MAP(KB_DK, KB_US, pckbd_keydesc_dk), |
815 | KBD_MAP(KB_DK | KB_NODEAD, KB_DK, pckbd_keydesc_dk_nodead), |
816 | KBD_MAP(KB_IT, KB_US, pckbd_keydesc_it), |
817 | KBD_MAP(KB_UK, KB_US, pckbd_keydesc_uk), |
818 | KBD_MAP(KB_JP, KB_US, pckbd_keydesc_jp), |
819 | KBD_MAP(KB_SV, KB_DK, pckbd_keydesc_sv), |
820 | KBD_MAP(KB_SV | KB_NODEAD, KB_SV, pckbd_keydesc_sv_nodead), |
821 | KBD_MAP(KB_NO, KB_DK, pckbd_keydesc_no), |
822 | KBD_MAP(KB_NO | KB_NODEAD, KB_NO, pckbd_keydesc_no_nodead), |
823 | KBD_MAP(KB_US | KB_DECLK, KB_US, pckbd_keydesc_us_declk), |
824 | KBD_MAP(KB_US | KB_DVORAK, KB_US, pckbd_keydesc_us_dvorak), |
825 | KBD_MAP(KB_US | KB_COLEMAK, KB_US, pckbd_keydesc_us_colemak), |
826 | KBD_MAP(KB_US | KB_SWAPCTRLCAPS, KB_US, pckbd_keydesc_swapctrlcaps), |
827 | KBD_MAP(KB_US | KB_IOPENER, KB_US, pckbd_keydesc_iopener), |
828 | KBD_MAP(KB_JP | KB_SWAPCTRLCAPS, KB_JP, pckbd_keydesc_swapctrlcaps), |
829 | KBD_MAP(KB_FR | KB_SWAPCTRLCAPS, KB_FR, pckbd_keydesc_swapctrlcaps), |
830 | KBD_MAP(KB_US | KB_DVORAK | KB_SWAPCTRLCAPS, KB_US | KB_DVORAK, |
831 | pckbd_keydesc_swapctrlcaps), |
832 | KBD_MAP(KB_US | KB_IOPENER | KB_SWAPCTRLCAPS, KB_US | KB_IOPENER, |
833 | pckbd_keydesc_swapctrlcaps), |
834 | KBD_MAP(KB_ES, KB_US, pckbd_keydesc_es), |
835 | KBD_MAP(KB_PT, KB_US, pckbd_keydesc_pt), |
836 | KBD_MAP(KB_GR, KB_US, pckbd_keydesc_gr), |
837 | KBD_MAP(KB_CZ, KB_US, pckbd_keydesc_cz), |
838 | KBD_MAP(KB_HU, KB_US, pckbd_keydesc_hu), |
839 | KBD_MAP(KB_NL, KB_US, pckbd_keydesc_nl), |
840 | KBD_MAP(KB_NL | KB_NODEAD, KB_NL, pckbd_keydesc_nl_nodead), |
841 | #endif /* WSKBD_USONLY */ |
842 | |
843 | /* placeholders */ |
844 | KBD_NULLMAP(KB_US | KB_MACHDEP, KB_US), |
845 | #ifndef WSKBD_USONLY |
846 | KBD_NULLMAP(KB_DE | KB_MACHDEP, KB_DE), |
847 | KBD_NULLMAP(KB_SG | KB_MACHDEP, KB_SG), |
848 | KBD_NULLMAP(KB_ES | KB_MACHDEP, KB_ES), |
849 | KBD_NULLMAP(KB_FR | KB_MACHDEP, KB_FR), |
850 | KBD_NULLMAP(KB_JP | KB_MACHDEP, KB_JP), |
851 | KBD_NULLMAP(KB_US | KB_MACHDEP | KB_SWAPCTRLCAPS, |
852 | KB_US | KB_SWAPCTRLCAPS), |
853 | KBD_NULLMAP(KB_JP | KB_MACHDEP | KB_SWAPCTRLCAPS, |
854 | KB_JP | KB_SWAPCTRLCAPS), |
855 | #endif /* WSKBD_USONLY */ |
856 | |
857 | {0, 0, 0, 0} |
858 | }; |
859 | |
860 | #undef KBD_MAP |
861 | #undef KC |
862 | |