1/* $NetBSD: wsksymdef.h,v 1.66 2012/04/22 14:32:08 khorben 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#ifndef _DEV_WSCONS_WSKSYMDEF_H_
33#define _DEV_WSCONS_WSKSYMDEF_H_
34
35/*
36 * Keysymbols encoded as 16-bit Unicode. Special symbols
37 * are encoded in the private area (0xe000 - 0xf8ff).
38 * Currently only ISO Latin-1 subset is supported.
39 *
40 * This file is parsed from userland. Encode keysyms as:
41 *
42 * #define KS_[^ \t]* 0x[0-9a-f]*
43 *
44 * and don't modify the border comments.
45 */
46
47
48/*BEGINKEYSYMDECL*/
49
50/*
51 * Group Ascii (ISO Latin1) character in low byte
52 */
53
54#define KS_BackSpace 0x08
55#define KS_Tab 0x09
56#define KS_Linefeed 0x0a
57#define KS_Clear 0x0b
58#define KS_Return 0x0d
59#define KS_Escape 0x1b
60#define KS_space 0x20
61#define KS_exclam 0x21
62#define KS_quotedbl 0x22
63#define KS_numbersign 0x23
64#define KS_dollar 0x24
65#define KS_percent 0x25
66#define KS_ampersand 0x26
67#define KS_apostrophe 0x27
68#define KS_parenleft 0x28
69#define KS_parenright 0x29
70#define KS_asterisk 0x2a
71#define KS_plus 0x2b
72#define KS_comma 0x2c
73#define KS_minus 0x2d
74#define KS_period 0x2e
75#define KS_slash 0x2f
76#define KS_0 0x30
77#define KS_1 0x31
78#define KS_2 0x32
79#define KS_3 0x33
80#define KS_4 0x34
81#define KS_5 0x35
82#define KS_6 0x36
83#define KS_7 0x37
84#define KS_8 0x38
85#define KS_9 0x39
86#define KS_colon 0x3a
87#define KS_semicolon 0x3b
88#define KS_less 0x3c
89#define KS_equal 0x3d
90#define KS_greater 0x3e
91#define KS_question 0x3f
92#define KS_at 0x40
93#define KS_A 0x41
94#define KS_B 0x42
95#define KS_C 0x43
96#define KS_D 0x44
97#define KS_E 0x45
98#define KS_F 0x46
99#define KS_G 0x47
100#define KS_H 0x48
101#define KS_I 0x49
102#define KS_J 0x4a
103#define KS_K 0x4b
104#define KS_L 0x4c
105#define KS_M 0x4d
106#define KS_N 0x4e
107#define KS_O 0x4f
108#define KS_P 0x50
109#define KS_Q 0x51
110#define KS_R 0x52
111#define KS_S 0x53
112#define KS_T 0x54
113#define KS_U 0x55
114#define KS_V 0x56
115#define KS_W 0x57
116#define KS_X 0x58
117#define KS_Y 0x59
118#define KS_Z 0x5a
119#define KS_bracketleft 0x5b
120#define KS_backslash 0x5c
121#define KS_bracketright 0x5d
122#define KS_asciicircum 0x5e
123#define KS_underscore 0x5f
124#define KS_grave 0x60
125#define KS_a 0x61
126#define KS_b 0x62
127#define KS_c 0x63
128#define KS_d 0x64
129#define KS_e 0x65
130#define KS_f 0x66
131#define KS_g 0x67
132#define KS_h 0x68
133#define KS_i 0x69
134#define KS_j 0x6a
135#define KS_k 0x6b
136#define KS_l 0x6c
137#define KS_m 0x6d
138#define KS_n 0x6e
139#define KS_o 0x6f
140#define KS_p 0x70
141#define KS_q 0x71
142#define KS_r 0x72
143#define KS_s 0x73
144#define KS_t 0x74
145#define KS_u 0x75
146#define KS_v 0x76
147#define KS_w 0x77
148#define KS_x 0x78
149#define KS_y 0x79
150#define KS_z 0x7a
151#define KS_braceleft 0x7b
152#define KS_bar 0x7c
153#define KS_braceright 0x7d
154#define KS_asciitilde 0x7e
155#define KS_Delete 0x7f
156#define KS_nobreakspace 0xa0
157#define KS_exclamdown 0xa1
158#define KS_cent 0xa2
159#define KS_sterling 0xa3
160#define KS_currency 0xa4
161#define KS_yen 0xa5
162#define KS_brokenbar 0xa6
163#define KS_section 0xa7
164#define KS_diaeresis 0xa8
165#define KS_copyright 0xa9
166#define KS_ordfeminine 0xaa
167#define KS_guillemotleft 0xab
168#define KS_notsign 0xac
169#define KS_hyphen 0xad
170#define KS_registered 0xae
171#define KS_macron 0xaf
172#define KS_degree 0xb0
173#define KS_plusminus 0xb1
174#define KS_twosuperior 0xb2
175#define KS_threesuperior 0xb3
176#define KS_acute 0xb4
177#define KS_mu 0xb5
178#define KS_paragraph 0xb6
179#define KS_periodcentered 0xb7
180#define KS_cedilla 0xb8
181#define KS_onesuperior 0xb9
182#define KS_masculine 0xba
183#define KS_guillemotright 0xbb
184#define KS_onequarter 0xbc
185#define KS_onehalf 0xbd
186#define KS_threequarters 0xbe
187#define KS_questiondown 0xbf
188#define KS_Agrave 0xc0
189#define KS_Aacute 0xc1
190#define KS_Acircumflex 0xc2
191#define KS_Atilde 0xc3
192#define KS_Adiaeresis 0xc4
193#define KS_Aring 0xc5
194#define KS_AE 0xc6
195#define KS_Ccedilla 0xc7
196#define KS_Egrave 0xc8
197#define KS_Eacute 0xc9
198#define KS_Ecircumflex 0xca
199#define KS_Ediaeresis 0xcb
200#define KS_Igrave 0xcc
201#define KS_Iacute 0xcd
202#define KS_Icircumflex 0xce
203#define KS_Idiaeresis 0xcf
204#define KS_ETH 0xd0
205#define KS_Ntilde 0xd1
206#define KS_Ograve 0xd2
207#define KS_Oacute 0xd3
208#define KS_Ocircumflex 0xd4
209#define KS_Otilde 0xd5
210#define KS_Odiaeresis 0xd6
211#define KS_multiply 0xd7
212#define KS_Ooblique 0xd8
213#define KS_Ugrave 0xd9
214#define KS_Uacute 0xda
215#define KS_Ucircumflex 0xdb
216#define KS_Udiaeresis 0xdc
217#define KS_Yacute 0xdd
218#define KS_THORN 0xde
219#define KS_ssharp 0xdf
220#define KS_agrave 0xe0
221#define KS_aacute 0xe1
222#define KS_acircumflex 0xe2
223#define KS_atilde 0xe3
224#define KS_adiaeresis 0xe4
225#define KS_aring 0xe5
226#define KS_ae 0xe6
227#define KS_ccedilla 0xe7
228#define KS_egrave 0xe8
229#define KS_eacute 0xe9
230#define KS_ecircumflex 0xea
231#define KS_ediaeresis 0xeb
232#define KS_igrave 0xec
233#define KS_iacute 0xed
234#define KS_icircumflex 0xee
235#define KS_idiaeresis 0xef
236#define KS_eth 0xf0
237#define KS_ntilde 0xf1
238#define KS_ograve 0xf2
239#define KS_oacute 0xf3
240#define KS_ocircumflex 0xf4
241#define KS_otilde 0xf5
242#define KS_odiaeresis 0xf6
243#define KS_division 0xf7
244#define KS_oslash 0xf8
245#define KS_ugrave 0xf9
246#define KS_uacute 0xfa
247#define KS_ucircumflex 0xfb
248#define KS_udiaeresis 0xfc
249#define KS_yacute 0xfd
250#define KS_thorn 0xfe
251#define KS_ydiaeresis 0xff
252#define KS_Abreve 0x0102
253#define KS_abreve 0x0103
254#define KS_Aogonek 0x0104
255#define KS_aogonek 0x0105
256#define KS_Cacute 0x0106
257#define KS_cacute 0x0107
258#define KS_Ccaron 0x010c
259#define KS_ccaron 0x010d
260#define KS_Dcaron 0x010e
261#define KS_dcaron 0x010f
262#define KS_Dstroke 0x0110
263#define KS_dstroke 0x0111
264#define KS_Eogonek 0x0118
265#define KS_eogonek 0x0119
266#define KS_Ecaron 0x011a
267#define KS_ecaron 0x011b
268#define KS_Lacute 0x0139
269#define KS_lacute 0x013a
270#define KS_Lcaron 0x013d
271#define KS_lcaron 0x013e
272#define KS_Lstroke 0x0141
273#define KS_lstroke 0x0142
274#define KS_Nacute 0x0143
275#define KS_nacute 0x0144
276#define KS_Ncaron 0x0147
277#define KS_ncaron 0x0148
278#define KS_Odoubleacute 0x0150
279#define KS_odoubleacute 0x0151
280#define KS_Racute 0x0154
281#define KS_racute 0x0155
282#define KS_Rcaron 0x0158
283#define KS_rcaron 0x0159
284#define KS_Sacute 0x015a
285#define KS_sacute 0x015b
286#define KS_Scedilla 0x015e
287#define KS_scedilla 0x015f
288#define KS_Scaron 0x0160
289#define KS_scaron 0x0161
290#define KS_Tcedilla 0x0162
291#define KS_tcedilla 0x0163
292#define KS_Tcaron 0x0164
293#define KS_tcaron 0x0165
294#define KS_Uabovering 0x016e
295#define KS_uabovering 0x016f
296#define KS_Udoubleacute 0x0170
297#define KS_udoubleacute 0x0171
298#define KS_Zacute 0x0179
299#define KS_zacute 0x017a
300#define KS_Zabovedot 0x017b
301#define KS_zabovedot 0x017c
302#define KS_Zcaron 0x017d
303#define KS_zcaron 0x017e
304
305#define KS_caron 0x02c7
306#define KS_breve 0x02d8
307#define KS_abovedot 0x02d9
308#define KS_ogonek 0x02db
309#define KS_doubleacute 0x02dd
310
311/*
312 * Group Dead (dead accents)
313 * http://www.unicode.org/charts/PDF/U0300.pdf
314 * dotaccent = "dot above"
315 * hungarumlaut = "double acute"
316 * slash = "short solidus"
317 */
318
319#define KS_dead_grave 0x0300
320#define KS_dead_acute 0x0301
321#define KS_dead_circumflex 0x0302
322#define KS_dead_tilde 0x0303
323#define KS_dead_breve 0x0306
324#define KS_dead_diaeresis 0x0308
325#define KS_dead_abovering 0x030a
326#define KS_dead_caron 0x030c
327#define KS_dead_dotaccent 0x0307
328#define KS_dead_hungarumlaut 0x030b
329#define KS_dead_ogonek 0x0328
330#define KS_dead_slash 0x0337
331#define KS_dead_cedilla 0x0327
332#define KS_dead_semi 0x0328
333#define KS_dead_colon 0x0329
334
335/*
336 * Group Greek
337 */
338
339#define KS_gr_At 0xb6
340#define KS_gr_Et 0xb8
341#define KS_gr_Ht 0xb9
342#define KS_gr_It 0xba
343#define KS_gr_Ot 0xbc
344#define KS_gr_Yt 0xbe
345#define KS_gr_Vt 0xbf
346#define KS_gr_itd 0xc0
347#define KS_gr_A 0xc1
348#define KS_gr_B 0xc2
349#define KS_gr_G 0xc3
350#define KS_gr_D 0xc4
351#define KS_gr_E 0xc5
352#define KS_gr_Z 0xc6
353#define KS_gr_H 0xc7
354#define KS_gr_U 0xc8
355#define KS_gr_I 0xc9
356#define KS_gr_K 0xca
357#define KS_gr_L 0xcb
358#define KS_gr_M 0xcc
359#define KS_gr_N 0xcd
360#define KS_gr_J 0xce
361#define KS_gr_O 0xcf
362#define KS_gr_P 0xd0
363#define KS_gr_R 0xd1
364#define KS_gr_S 0xd3
365#define KS_gr_T 0xd4
366#define KS_gr_Y 0xd5
367#define KS_gr_F 0xd6
368#define KS_gr_X 0xd7
369#define KS_gr_C 0xd8
370#define KS_gr_V 0xd9
371#define KS_gr_Id 0xda
372#define KS_gr_Yd 0xdb
373#define KS_gr_at 0xdc
374#define KS_gr_et 0xdd
375#define KS_gr_ht 0xde
376#define KS_gr_it 0xdf
377#define KS_gr_ytd 0xe0
378#define KS_gr_a 0xe1
379#define KS_gr_b 0xe2
380#define KS_gr_g 0xe3
381#define KS_gr_d 0xe4
382#define KS_gr_e 0xe5
383#define KS_gr_z 0xe6
384#define KS_gr_h 0xe7
385#define KS_gr_u 0xe8
386#define KS_gr_i 0xe9
387#define KS_gr_k 0xea
388#define KS_gr_l 0xeb
389#define KS_gr_m 0xec
390#define KS_gr_n 0xed
391#define KS_gr_j 0xee
392#define KS_gr_o 0xef
393#define KS_gr_p 0xf0
394#define KS_gr_r 0xf1
395#define KS_gr_teliko_s 0xf2
396#define KS_gr_s 0xf3
397#define KS_gr_t 0xf4
398#define KS_gr_y 0xf5
399#define KS_gr_f 0xf6
400#define KS_gr_x 0xf7
401#define KS_gr_c 0xf8
402#define KS_gr_v 0xf9
403#define KS_gr_id 0xfa
404#define KS_gr_yd 0xfb
405#define KS_gr_ot 0xfc
406#define KS_gr_yt 0xfd
407#define KS_gr_vt 0xfe
408
409/*
410 * Group 1 (modifiers)
411 */
412
413#define KS_Shift_L 0xf101
414#define KS_Shift_R 0xf102
415#define KS_Control_L 0xf103
416#define KS_Control_R 0xf104
417#define KS_Caps_Lock 0xf105
418#define KS_Shift_Lock 0xf106
419#define KS_Alt_L 0xf107
420#define KS_Alt_R 0xf108
421#define KS_Multi_key 0xf109
422#define KS_Mode_switch 0xf10a
423#define KS_Num_Lock 0xf10b
424#define KS_Hold_Screen 0xf10c
425#define KS_Cmd 0xf10d
426#define KS_Cmd1 0xf10e
427#define KS_Cmd2 0xf10f
428#define KS_Meta_L 0xf110
429#define KS_Meta_R 0xf111
430#define KS_Zenkaku_Hankaku 0xf112 /* Zenkaku/Hankaku toggle */
431#define KS_Hiragana_Katakana 0xf113 /* Hiragana/Katakana toggle */
432#define KS_Henkan_Mode 0xf114 /* Start/Stop Conversion */
433#define KS_Henkan 0xf115 /* Alias for Henkan_Mode */
434#define KS_Muhenkan 0xf116 /* Cancel Conversion */
435
436/*
437 * Group 2 (keypad) character in low byte
438 */
439
440#define KS_KP_F1 0xf291
441#define KS_KP_F2 0xf292
442#define KS_KP_F3 0xf293
443#define KS_KP_F4 0xf294
444#define KS_KP_Home 0xf295
445#define KS_KP_Left 0xf296
446#define KS_KP_Up 0xf297
447#define KS_KP_Right 0xf298
448#define KS_KP_Down 0xf299
449#define KS_KP_Prior 0xf29a
450#define KS_KP_Next 0xf29b
451#define KS_KP_End 0xf29c
452#define KS_KP_Begin 0xf29d
453#define KS_KP_Insert 0xf29e
454#define KS_KP_Delete 0xf29f
455
456#define KS_KP_Space 0xf220
457#define KS_KP_Tab 0xf209
458#define KS_KP_Enter 0xf20d
459#define KS_KP_Equal 0xf23d
460#define KS_KP_Numbersign 0xf223
461#define KS_KP_Multiply 0xf22a
462#define KS_KP_Add 0xf22b
463#define KS_KP_Separator 0xf22c
464#define KS_KP_Subtract 0xf22d
465#define KS_KP_Decimal 0xf22e
466#define KS_KP_Divide 0xf22f
467#define KS_KP_0 0xf230
468#define KS_KP_1 0xf231
469#define KS_KP_2 0xf232
470#define KS_KP_3 0xf233
471#define KS_KP_4 0xf234
472#define KS_KP_5 0xf235
473#define KS_KP_6 0xf236
474#define KS_KP_7 0xf237
475#define KS_KP_8 0xf238
476#define KS_KP_9 0xf239
477
478/*
479 * Group 3 (function)
480 */
481
482#define KS_f1 0xf300
483#define KS_f2 0xf301
484#define KS_f3 0xf302
485#define KS_f4 0xf303
486#define KS_f5 0xf304
487#define KS_f6 0xf305
488#define KS_f7 0xf306
489#define KS_f8 0xf307
490#define KS_f9 0xf308
491#define KS_f10 0xf309
492#define KS_f11 0xf30a
493#define KS_f12 0xf30b
494#define KS_f13 0xf30c
495#define KS_f14 0xf30d
496#define KS_f15 0xf30e
497#define KS_f16 0xf30f
498#define KS_f17 0xf310
499#define KS_f18 0xf311
500#define KS_f19 0xf312
501#define KS_f20 0xf313
502
503#define KS_F1 0xf340
504#define KS_F2 0xf341
505#define KS_F3 0xf342
506#define KS_F4 0xf343
507#define KS_F5 0xf344
508#define KS_F6 0xf345
509#define KS_F7 0xf346
510#define KS_F8 0xf347
511#define KS_F9 0xf348
512#define KS_F10 0xf349
513#define KS_F11 0xf34a
514#define KS_F12 0xf34b
515#define KS_F13 0xf34c
516#define KS_F14 0xf34d
517#define KS_F15 0xf34e
518#define KS_F16 0xf34f
519#define KS_F17 0xf350
520#define KS_F18 0xf351
521#define KS_F19 0xf352
522#define KS_F20 0xf353
523
524#define KS_Power 0xf36d
525
526#define KS_Home 0xf381
527#define KS_Prior 0xf382
528#define KS_Next 0xf383
529#define KS_Up 0xf384
530#define KS_Down 0xf385
531#define KS_Left 0xf386
532#define KS_Right 0xf387
533#define KS_End 0xf388
534#define KS_Insert 0xf389
535#define KS_Help 0xf38a
536#define KS_Execute 0xf38b
537#define KS_Find 0xf38c
538#define KS_Select 0xf38d
539#define KS_Again 0xf38e
540#define KS_Props 0xf38f
541#define KS_Undo 0xf390
542#define KS_Front 0xf391
543#define KS_Copy 0xf392
544#define KS_Open 0xf393
545#define KS_Paste 0xf394
546#define KS_Cut 0xf395
547#define KS_Stop 0xf396
548
549#define KS_Menu 0xf3c0
550#define KS_Pause 0xf3c1
551#define KS_Print_Screen 0xf3c2
552
553/*
554 * Group 4 (command)
555 */
556
557#define KS_Cmd_Screen0 0xf400
558#define KS_Cmd_Screen1 0xf401
559#define KS_Cmd_Screen2 0xf402
560#define KS_Cmd_Screen3 0xf403
561#define KS_Cmd_Screen4 0xf404
562#define KS_Cmd_Screen5 0xf405
563#define KS_Cmd_Screen6 0xf406
564#define KS_Cmd_Screen7 0xf407
565#define KS_Cmd_Screen8 0xf408
566#define KS_Cmd_Screen9 0xf409
567#define KS_Cmd_Debugger 0xf420
568#define KS_Cmd_ResetEmul 0xf421
569#define KS_Cmd_ResetClose 0xf422
570#define KS_Cmd_BacklightOn 0xf423
571#define KS_Cmd_BacklightOff 0xf424
572#define KS_Cmd_BacklightToggle 0xf425
573#define KS_Cmd_BrightnessUp 0xf426
574#define KS_Cmd_BrightnessDown 0xf427
575#define KS_Cmd_BrightnessRotate 0xf428
576#define KS_Cmd_ContrastUp 0xf429
577#define KS_Cmd_ContrastDown 0xf42a
578#define KS_Cmd_ContrastRotate 0xf42b
579#define KS_Cmd_ScrollFastUp 0xf42c
580#define KS_Cmd_ScrollFastDown 0xf42d
581#define KS_Cmd_ScrollSlowUp 0xf42e
582#define KS_Cmd_ScrollSlowDown 0xf42f
583#define KS_Cmd_VolumeUp 0xf430
584#define KS_Cmd_VolumeDown 0xf431
585#define KS_Cmd_VolumeToggle 0xf432
586
587/*
588 * Group 5 (internal)
589 */
590
591#define KS_voidSymbol 0xf500
592
593/*ENDKEYSYMDECL*/
594
595/*
596 * keysym groups
597 */
598
599#define KS_GROUP_Mod 0xf100U
600#define KS_GROUP_Keypad 0xf200U
601#define KS_GROUP_Function 0xf300U
602#define KS_GROUP_Command 0xf400U
603#define KS_GROUP_Internal 0xf500U
604#define KS_GROUP_Dead 0xf801U /* not encoded in keysym */
605#define KS_GROUP_Plain 0xf802U /* not encoded in keysym */
606#define KS_GROUP_Keycode 0xf803U /* not encoded in keysym */
607
608#define KS_NUMKEYCODES 0x1000
609#define KS_KEYCODE(v) ((v) | 0xe000)
610
611#define KS_GROUP(k) ((k) >= 0x0300 && (k) < 0x0370 ? KS_GROUP_Dead : \
612 (((k) & 0xf000) == 0xe000 ? KS_GROUP_Keycode : \
613 (((k) & 0xf800) == 0xf000 ? ((k) & 0xff00) : \
614 KS_GROUP_Plain)))
615
616#define KS_VALUE(k) (((k) & 0xf000) == 0xe000 ? ((k) & 0x0fff) : \
617 (((k) & 0xf800) == 0xf000 ? ((k) & 0x00ff) : (k)))
618
619/*
620 * Keyboard types: 8bit encoding, 24bit variant
621 */
622
623#define KB_ENCODING(e) ((e) & 0x0000ff00)
624#define KB_VARIANT(e) ((e) & 0xffff00ff)
625
626#define KB_NODEAD 0x0001
627#define KB_DECLK 0x0002 /* DEC LKnnn layout */
628#define KB_LK401 0x0004 /* DEC LK401 instead LK201 */
629#define KB_SWAPCTRLCAPS 0x0008 /* Swap Left-Control and Caps-Lock */
630#define KB_DVORAK 0x0010 /* Dvorak layout */
631#define KB_METAESC 0x0020 /* generate ESC prefix on ALT-key */
632#define KB_IOPENER 0x0040 /* f1-f12 -> ESC,f1-f11 */
633#define KB_MACHDEP 0x0080 /* machine dependent */
634#define KB_COLEMAK 0x00010000 /* Colemak layout */
635
636/*
637 * Define keyboard type and texts all in one table.
638 * Include default variants (and their text form) for sysinst.
639 * Sort (loosely) by country name.
640 */
641#define KB_ENC_FUN(action) \
642action(KB_USER, 0, 0x0100, "user", , "User-defined") \
643action(KB_US, 0, 0x0200, "us", , "US-English") \
644action(KB_UK, 0, 0x0700, "uk", , "UK-English") \
645action(KB_BE, 0, 0x1300, "be", , "Belgian") \
646action(KB_CZ, 0, 0x1500, "cz", , "Czech") \
647action(KB_DK, 0, 0x0400, "dk", , "Danish") \
648action(KB_NL, 0, 0x1600, "nl", , "Dutch") \
649action(KB_FI, 0, 0x0900, "fi", , "Finnish") \
650action(KB_FR, 0, 0x0600, "fr", , "French") \
651action(KB_DE, KB_NODEAD,0x0300, "de",".nodead", "German") \
652action(KB_GR, 0, 0x1400, "gr", , "Greek") \
653action(KB_HU, 0, 0x0c00, "hu", , "Hungarian") \
654action(KB_IT, 0, 0x0500, "it", , "Italian") \
655action(KB_JP, 0, 0x0800, "jp", , "Japanese") \
656action(KB_NO, 0, 0x0a00, "no", , "Norwegian") \
657action(KB_PL, 0, 0x0d00, "pl", , "Polish") \
658action(KB_PT, 0, 0x1100, "pt", , "Portuguese") \
659action(KB_RU, 0, 0x0e00, "ru", , "Russian") \
660action(KB_ES, 0, 0x0b00, "es", , "Spanish") \
661action(KB_SV, 0, 0x0900, "sv", , "Swedish") \
662action(KB_SF, 0, 0x1000, "sf", , "Swiss French") \
663action(KB_SG, 0, 0x0f00, "sg", , "Swiss German") \
664action(KB_UA, 0, 0x1200, "ua", , "Ukrainian")
665#define KB_NONE 0x0000
666
667/* Define all the KB_xx numeric values using above table */
668#define KBF_ENUM(tag, tagf, value, cc, ccf, country) tag=value,
669enum { KB_ENC_FUN(KBF_ENUM) KB_NEXT=0x1700 };
670
671/* Define list of KB_xxx and country codes for array initialisation */
672#define KBF_ENCTAB(tag, tagf, value, cc, ccf, country) { tag, cc },
673#define KB_ENCTAB KB_ENC_FUN(KBF_ENCTAB)
674
675#define KB_VARTAB \
676 { KB_NODEAD, "nodead" }, \
677 { KB_DECLK, "declk" }, \
678 { KB_LK401, "lk401" }, \
679 { KB_SWAPCTRLCAPS, "swapctrlcaps" }, \
680 { KB_DVORAK, "dvorak" }, \
681 { KB_METAESC, "metaesc" }, \
682 { KB_IOPENER, "iopener" }, \
683 { KB_MACHDEP, "machdep" }, \
684 { KB_COLEMAK, "colemak" }
685
686#endif /* !_DEV_WSCONS_WSKSYMDEF_H_ */
687