Annotation of src/sys/dev/wscons/wsksymdef.h, Revision 1.65.6.1
1.65.6.1! mrg 1: /* $NetBSD: wsksymdef.h,v 1.65 2011/07/22 18:17:12 christos Exp $ */
1.2 hannken 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:
1.1 hannken 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.
1.13 hannken 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.
1.1 hannken 45: */
46:
1.13 hannken 47:
48: /*BEGINKEYSYMDECL*/
49:
1.1 hannken 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
1.63 mkirby 250: #define KS_thorn 0xfe
1.1 hannken 251: #define KS_ydiaeresis 0xff
1.63 mkirby 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
1.39 drochner 310:
1.1 hannken 311: /*
312: * Group Dead (dead accents)
1.63 mkirby 313: * http://www.unicode.org/charts/PDF/U0300.pdf
314: * dotaccent = "dot above"
315: * hungarumlaut = "double acute"
316: * slash = "short solidus"
1.1 hannken 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
1.63 mkirby 323: #define KS_dead_breve 0x0306
1.1 hannken 324: #define KS_dead_diaeresis 0x0308
325: #define KS_dead_abovering 0x030a
1.63 mkirby 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
1.1 hannken 331: #define KS_dead_cedilla 0x0327
1.63 mkirby 332: #define KS_dead_semi 0x0328
333: #define KS_dead_colon 0x0329
1.56 christos 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
1.1 hannken 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
1.18 augustss 428: #define KS_Meta_L 0xf110
429: #define KS_Meta_R 0xf111
1.22 drochner 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 */
1.1 hannken 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
1.32 bjh21 460: #define KS_KP_Numbersign 0xf223
1.1 hannken 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:
1.54 martin 524: #define KS_Power 0xf36d
525:
1.1 hannken 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
1.7 drochner 535: #define KS_Help 0xf38a
536: #define KS_Execute 0xf38b
537: #define KS_Find 0xf38c
538: #define KS_Select 0xf38d
1.46 martin 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
1.65.6.1! mrg 547: #define KS_Stop 0xf396
1.16 augustss 548:
549: #define KS_Menu 0xf3c0
1.17 augustss 550: #define KS_Pause 0xf3c1
551: #define KS_Print_Screen 0xf3c2
1.1 hannken 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
1.19 drochner 568: #define KS_Cmd_ResetEmul 0xf421
1.21 drochner 569: #define KS_Cmd_ResetClose 0xf422
1.36 takemura 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
1.49 christos 579: #define KS_Cmd_ScrollFastUp 0xf42c
580: #define KS_Cmd_ScrollFastDown 0xf42d
581: #define KS_Cmd_ScrollSlowUp 0xf42e
582: #define KS_Cmd_ScrollSlowDown 0xf42f
1.59 jmcneill 583: #define KS_Cmd_VolumeUp 0xf430
584: #define KS_Cmd_VolumeDown 0xf431
585: #define KS_Cmd_VolumeToggle 0xf432
1.1 hannken 586:
587: /*
588: * Group 5 (internal)
589: */
590:
591: #define KS_voidSymbol 0xf500
592:
1.13 hannken 593: /*ENDKEYSYMDECL*/
594:
1.1 hannken 595: /*
596: * keysym groups
597: */
598:
1.47 fvdl 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 */
1.64 drochner 605: #define KS_GROUP_Plain 0xf802U /* not encoded in keysym */
1.47 fvdl 606: #define KS_GROUP_Keycode 0xf803U /* not encoded in keysym */
1.6 hannken 607:
1.13 hannken 608: #define KS_NUMKEYCODES 0x1000
609: #define KS_KEYCODE(v) ((v) | 0xe000)
610:
1.6 hannken 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) : \
1.64 drochner 614: KS_GROUP_Plain)))
1.1 hannken 615:
616: #define KS_VALUE(k) (((k) & 0xf000) == 0xe000 ? ((k) & 0x0fff) : \
1.6 hannken 617: (((k) & 0xf800) == 0xf000 ? ((k) & 0x00ff) : (k)))
1.1 hannken 618:
619: /*
1.35 hannken 620: * Keyboard types: 8bit encoding, 24bit variant
1.1 hannken 621: */
622:
1.35 hannken 623: #define KB_ENCODING(e) ((e) & 0x0000ff00)
624: #define KB_VARIANT(e) ((e) & 0xffff00ff)
1.1 hannken 625:
626: #define KB_NODEAD 0x0001
1.9 drochner 627: #define KB_DECLK 0x0002 /* DEC LKnnn layout */
1.11 drochner 628: #define KB_LK401 0x0004 /* DEC LK401 instead LK201 */
1.30 tsarna 629: #define KB_SWAPCTRLCAPS 0x0008 /* Swap Left-Control and Caps-Lock */
1.25 drochner 630: #define KB_DVORAK 0x0010 /* Dvorak layout */
1.27 drochner 631: #define KB_METAESC 0x0020 /* generate ESC prefix on ALT-key */
1.31 tsarna 632: #define KB_IOPENER 0x0040 /* f1-f12 -> ESC,f1-f11 */
1.36 takemura 633: #define KB_MACHDEP 0x0080 /* machine dependent */
1.61 ghen 634: #define KB_COLEMAK 0x00010000 /* Colemak layout */
1.1 hannken 635:
1.51 dsl 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) \
642: action(KB_USER, 0, 0x0100, "user", , "User-defined") \
643: action(KB_US, 0, 0x0200, "us", , "US-English") \
644: action(KB_UK, 0, 0x0700, "uk", , "UK-English") \
645: action(KB_BE, 0, 0x1300, "be", , "Belgian") \
1.63 mkirby 646: action(KB_CZ, 0, 0x1500, "cz", , "Czech") \
1.51 dsl 647: action(KB_DK, 0, 0x0400, "dk", , "Danish") \
1.65 christos 648: action(KB_NL, 0, 0x1600, "nl", , "Dutch") \
1.52 martti 649: action(KB_FI, 0, 0x0900, "fi", , "Finnish") \
1.51 dsl 650: action(KB_FR, 0, 0x0600, "fr", , "French") \
651: action(KB_DE, KB_NODEAD,0x0300, "de",".nodead", "German") \
1.56 christos 652: action(KB_GR, 0, 0x1400, "gr", , "Greek") \
1.51 dsl 653: action(KB_HU, 0, 0x0c00, "hu", , "Hungarian") \
654: action(KB_IT, 0, 0x0500, "it", , "Italian") \
655: action(KB_JP, 0, 0x0800, "jp", , "Japanese") \
656: action(KB_NO, 0, 0x0a00, "no", , "Norwegian") \
657: action(KB_PL, 0, 0x0d00, "pl", , "Polish") \
1.62 snj 658: action(KB_PT, 0, 0x1100, "pt", , "Portuguese") \
1.51 dsl 659: action(KB_RU, 0, 0x0e00, "ru", , "Russian") \
660: action(KB_ES, 0, 0x0b00, "es", , "Spanish") \
661: action(KB_SV, 0, 0x0900, "sv", , "Swedish") \
662: action(KB_SF, 0, 0x1000, "sf", , "Swiss French") \
663: action(KB_SG, 0, 0x0f00, "sg", , "Swiss German") \
1.63 mkirby 664: action(KB_UA, 0, 0x1200, "ua", , "Ukrainian")
1.53 augustss 665: #define KB_NONE 0x0000
1.51 dsl 666:
667: /* Define all the KB_xx numeric values using above table */
668: #define KBF_ENUM(tag, tagf, value, cc, ccf, country) tag=value,
1.65 christos 669: enum { KB_ENC_FUN(KBF_ENUM) KB_NEXT=0x1700 };
1.51 dsl 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)
1.26 drochner 674:
675: #define KB_VARTAB \
1.8 drochner 676: { KB_NODEAD, "nodead" }, \
1.11 drochner 677: { KB_DECLK, "declk" }, \
1.15 drochner 678: { KB_LK401, "lk401" }, \
1.25 drochner 679: { KB_SWAPCTRLCAPS, "swapctrlcaps" }, \
1.27 drochner 680: { KB_DVORAK, "dvorak" }, \
1.31 tsarna 681: { KB_METAESC, "metaesc" }, \
1.36 takemura 682: { KB_IOPENER, "iopener" }, \
1.61 ghen 683: { KB_MACHDEP, "machdep" }, \
684: { KB_COLEMAK, "colemak" }
1.1 hannken 685:
686: #endif /* !_DEV_WSCONS_WSKSYMDEF_H_ */
CVSweb <webmaster@jp.NetBSD.org>