1 module derelict.x11.keysymdef;
2 
3 version(linux):
4 
5 import derelict.x11.keysym;
6 
7 extern (C) nothrow @nogc:
8 
9 const int XK_VoidSymbol                 = 0xffffff;  /* Void symbol */
10 
11 static if( XK_MISCELLANY ){
12 	/*
13 	 * TTY function keys, cleverly chosen to map to ASCII, for convenience of
14 	 * programming, but could have been arbitrary (at the cost of lookup
15 	 * tables in client code).
16 	 */
17 
18 	const int XK_BackSpace                     = 0xff08;  /* Back space, back char */
19 	const int XK_Tab                           = 0xff09;
20 	const int XK_Linefeed                      = 0xff0a;  /* Linefeed, LF */
21 	const int XK_Clear                         = 0xff0b;
22 	const int XK_Return                        = 0xff0d;  /* Return, enter */
23 	const int XK_Pause                         = 0xff13;  /* Pause, hold */
24 	const int XK_Scroll_Lock                   = 0xff14;
25 	const int XK_Sys_Req                       = 0xff15;
26 	const int XK_Escape                        = 0xff1b;
27 	const int XK_Delete                        = 0xffff;  /* Delete, rubout */
28 
29 	/* International & multi-key character composition */
30 
31 	const int XK_Multi_key                     = 0xff20;  /* Multi-key character compose */
32 	const int XK_Codeinput                     = 0xff37;
33 	const int XK_SingleCandidate               = 0xff3c;
34 	const int XK_MultipleCandidate             = 0xff3d;
35 	const int XK_PreviousCandidate             = 0xff3e;
36 
37 	/* Japanese keyboard support */
38 
39 	const int XK_Kanji                         = 0xff21;  /* Kanji, Kanji convert */
40 	const int XK_Muhenkan                      = 0xff22;  /* Cancel Conversion */
41 	const int XK_Henkan_Mode                   = 0xff23;  /* Start/Stop Conversion */
42 	const int XK_Henkan                        = 0xff23;  /* Alias for Henkan_Mode */
43 	const int XK_Romaji                        = 0xff24;  /* to Romaji */
44 	const int XK_Hiragana                      = 0xff25;  /* to Hiragana */
45 	const int XK_Katakana                      = 0xff26;  /* to Katakana */
46 	const int XK_Hiragana_Katakana             = 0xff27;  /* Hiragana/Katakana toggle */
47 	const int XK_Zenkaku                       = 0xff28;  /* to Zenkaku */
48 	const int XK_Hankaku                       = 0xff29;  /* to Hankaku */
49 	const int XK_Zenkaku_Hankaku               = 0xff2a;  /* Zenkaku/Hankaku toggle */
50 	const int XK_Touroku                       = 0xff2b;  /* Add to Dictionary */
51 	const int XK_Massyo                        = 0xff2c;  /* Delete from Dictionary */
52 	const int XK_Kana_Lock                     = 0xff2d;  /* Kana Lock */
53 	const int XK_Kana_Shift                    = 0xff2e;  /* Kana Shift */
54 	const int XK_Eisu_Shift                    = 0xff2f;  /* Alphanumeric Shift */
55 	const int XK_Eisu_toggle                   = 0xff30;  /* Alphanumeric toggle */
56 	const int XK_Kanji_Bangou                  = 0xff37;  /* Codeinput */
57 	const int XK_Zen_Koho                      = 0xff3d;  /* Multiple/All Candidate(s) */
58 	const int XK_Mae_Koho                      = 0xff3e;  /* Previous Candidate */
59 
60 	/* 0xff31 thru 0xff3f are under XK_KOREAN */
61 
62 	/* Cursor control & motion */
63 
64 	const int XK_Home                          = 0xff50;
65 	const int XK_Left                          = 0xff51;  /* Move left, left arrow */
66 	const int XK_Up                            = 0xff52;  /* Move up, up arrow */
67 	const int XK_Right                         = 0xff53;  /* Move right, right arrow */
68 	const int XK_Down                          = 0xff54;  /* Move down, down arrow */
69 	const int XK_Prior                         = 0xff55;  /* Prior, previous */
70 	const int XK_Page_Up                       = 0xff55;
71 	const int XK_Next                          = 0xff56;  /* Next */
72 	const int XK_Page_Down                     = 0xff56;
73 	const int XK_End                           = 0xff57;  /* EOL */
74 	const int XK_Begin                         = 0xff58;  /* BOL */
75 
76 	/* Misc functions */
77 
78 	const int XK_Select                        = 0xff60;  /* Select, mark */
79 	const int XK_Print                         = 0xff61;
80 	const int XK_Execute                       = 0xff62;  /* Execute, run, do */
81 	const int XK_Insert                        = 0xff63;  /* Insert, insert here */
82 	const int XK_Undo                          = 0xff65;
83 	const int XK_Redo                          = 0xff66;  /* Redo, again */
84 	const int XK_Menu                          = 0xff67;
85 	const int XK_Find                          = 0xff68;  /* Find, search */
86 	const int XK_Cancel                        = 0xff69;  /* Cancel, stop, abort, exit */
87 	const int XK_Help                          = 0xff6a;  /* Help */
88 	const int XK_break                         = 0xff6b;
89 	const int XK_Mode_switch                   = 0xff7e;  /* Character set switch */
90 	const int XK_script_switch                 = 0xff7e;  /* Alias for mode_switch */
91 	const int XK_Num_Lock                      = 0xff7f;
92 
93 	/* Keypad functions, keypad numbers cleverly chosen to map to ASCII */
94 
95 	const int XK_KP_Space                      = 0xff80;  /* Space */
96 	const int XK_KP_Tab                        = 0xff89;
97 	const int XK_KP_Enter                      = 0xff8d;  /* Enter */
98 	const int XK_KP_F1                         = 0xff91;  /* PF1, KP_A, ... */
99 	const int XK_KP_F2                         = 0xff92;
100 	const int XK_KP_F3                         = 0xff93;
101 	const int XK_KP_F4                         = 0xff94;
102 	const int XK_KP_Home                       = 0xff95;
103 	const int XK_KP_Left                       = 0xff96;
104 	const int XK_KP_Up                         = 0xff97;
105 	const int XK_KP_Right                      = 0xff98;
106 	const int XK_KP_Down                       = 0xff99;
107 	const int XK_KP_Prior                      = 0xff9a;
108 	const int XK_KP_Page_Up                    = 0xff9a;
109 	const int XK_KP_Next                       = 0xff9b;
110 	const int XK_KP_Page_Down                  = 0xff9b;
111 	const int XK_KP_End                        = 0xff9c;
112 	const int XK_KP_Begin                      = 0xff9d;
113 	const int XK_KP_Insert                     = 0xff9e;
114 	const int XK_KP_Delete                     = 0xff9f;
115 	const int XK_KP_Equal                      = 0xffbd;  /* Equals */
116 	const int XK_KP_Multiply                   = 0xffaa;
117 	const int XK_KP_Add                        = 0xffab;
118 	const int XK_KP_Separator                  = 0xffac;  /* Separator, often comma */
119 	const int XK_KP_Subtract                   = 0xffad;
120 	const int XK_KP_Decimal                    = 0xffae;
121 	const int XK_KP_Divide                     = 0xffaf;
122 
123 	const int XK_KP_0                          = 0xffb0;
124 	const int XK_KP_1                          = 0xffb1;
125 	const int XK_KP_2                          = 0xffb2;
126 	const int XK_KP_3                          = 0xffb3;
127 	const int XK_KP_4                          = 0xffb4;
128 	const int XK_KP_5                          = 0xffb5;
129 	const int XK_KP_6                          = 0xffb6;
130 	const int XK_KP_7                          = 0xffb7;
131 	const int XK_KP_8                          = 0xffb8;
132 	const int XK_KP_9                          = 0xffb9;
133 
134 	/*
135 	 * Auxiliary functions; note the duplicate definitions for left and right
136 	 * function keys;  Sun keyboards and a few other manufacturers have such
137 	 * function key groups on the left and/or right sides of the keyboard.
138 	 * We've not found a keyboard with more than 35 function keys total.
139 	 */
140 
141 	const int XK_F1                            = 0xffbe;
142 	const int XK_F2                            = 0xffbf;
143 	const int XK_F3                            = 0xffc0;
144 	const int XK_F4                            = 0xffc1;
145 	const int XK_F5                            = 0xffc2;
146 	const int XK_F6                            = 0xffc3;
147 	const int XK_F7                            = 0xffc4;
148 	const int XK_F8                            = 0xffc5;
149 	const int XK_F9                            = 0xffc6;
150 	const int XK_F10                           = 0xffc7;
151 	const int XK_F11                           = 0xffc8;
152 	const int XK_L1                            = 0xffc8;
153 	const int XK_F12                           = 0xffc9;
154 	const int XK_L2                            = 0xffc9;
155 	const int XK_F13                           = 0xffca;
156 	const int XK_L3                            = 0xffca;
157 	const int XK_F14                           = 0xffcb;
158 	const int XK_L4                            = 0xffcb;
159 	const int XK_F15                           = 0xffcc;
160 	const int XK_L5                            = 0xffcc;
161 	const int XK_F16                           = 0xffcd;
162 	const int XK_L6                            = 0xffcd;
163 	const int XK_F17                           = 0xffce;
164 	const int XK_L7                            = 0xffce;
165 	const int XK_F18                           = 0xffcf;
166 	const int XK_L8                            = 0xffcf;
167 	const int XK_F19                           = 0xffd0;
168 	const int XK_L9                            = 0xffd0;
169 	const int XK_F20                           = 0xffd1;
170 	const int XK_L10                           = 0xffd1;
171 	const int XK_F21                           = 0xffd2;
172 	const int XK_R1                            = 0xffd2;
173 	const int XK_F22                           = 0xffd3;
174 	const int XK_R2                            = 0xffd3;
175 	const int XK_F23                           = 0xffd4;
176 	const int XK_R3                            = 0xffd4;
177 	const int XK_F24                           = 0xffd5;
178 	const int XK_R4                            = 0xffd5;
179 	const int XK_F25                           = 0xffd6;
180 	const int XK_R5                            = 0xffd6;
181 	const int XK_F26                           = 0xffd7;
182 	const int XK_R6                            = 0xffd7;
183 	const int XK_F27                           = 0xffd8;
184 	const int XK_R7                            = 0xffd8;
185 	const int XK_F28                           = 0xffd9;
186 	const int XK_R8                            = 0xffd9;
187 	const int XK_F29                           = 0xffda;
188 	const int XK_R9                            = 0xffda;
189 	const int XK_F30                           = 0xffdb;
190 	const int XK_R10                           = 0xffdb;
191 	const int XK_F31                           = 0xffdc;
192 	const int XK_R11                           = 0xffdc;
193 	const int XK_F32                           = 0xffdd;
194 	const int XK_R12                           = 0xffdd;
195 	const int XK_F33                           = 0xffde;
196 	const int XK_R13                           = 0xffde;
197 	const int XK_F34                           = 0xffdf;
198 	const int XK_R14                           = 0xffdf;
199 	const int XK_F35                           = 0xffe0;
200 	const int XK_R15                           = 0xffe0;
201 
202 	/* Modifiers */
203 
204 	const int XK_Shift_L                       = 0xffe1;  /* Left shift */
205 	const int XK_Shift_R                       = 0xffe2;  /* Right shift */
206 	const int XK_Control_L                     = 0xffe3;  /* Left control */
207 	const int XK_Control_R                     = 0xffe4;  /* Right control */
208 	const int XK_Caps_Lock                     = 0xffe5;  /* Caps lock */
209 	const int XK_Shift_Lock                    = 0xffe6;  /* Shift lock */
210 
211 	const int XK_Meta_L                        = 0xffe7;  /* Left meta */
212 	const int XK_Meta_R                        = 0xffe8;  /* Right meta */
213 	const int XK_Alt_L                         = 0xffe9;  /* Left alt */
214 	const int XK_Alt_R                         = 0xffea;  /* Right alt */
215 	const int XK_Super_L                       = 0xffeb;  /* Left super */
216 	const int XK_Super_R                       = 0xffec;  /* Right super */
217 	const int XK_Hyper_L                       = 0xffed;  /* Left hyper */
218 	const int XK_Hyper_R                       = 0xffee;  /* Right hyper */
219 }
220 
221 /*
222  * Latin 1
223  * (ISO/IEC 8859-1 = Unicode U+0020..U+00FF)
224  * Byte 3 = 0
225  */
226 static if( XK_LATIN1 ){
227 	const int XK_space                         = 0x0020;  /* U+0020 SPACE */
228 	const int XK_exclam                        = 0x0021;  /* U+0021 EXCLAMATION MARK */
229 	const int XK_quotedbl                      = 0x0022;  /* U+0022 QUOTATION MARK */
230 	const int XK_numbersign                    = 0x0023;  /* U+0023 NUMBER SIGN */
231 	const int XK_dollar                        = 0x0024;  /* U+0024 DOLLAR SIGN */
232 	const int XK_percent                       = 0x0025;  /* U+0025 PERCENT SIGN */
233 	const int XK_ampersand                     = 0x0026;  /* U+0026 AMPERSAND */
234 	const int XK_apostrophe                    = 0x0027;  /* U+0027 APOSTROPHE */
235 	const int XK_quoteright                    = 0x0027;  /* Deprecated */
236 	const int XK_parenleft                     = 0x0028;  /* U+0028 LEFT PARENTHESIS */
237 	const int XK_parenright                    = 0x0029;  /* U+0029 RIGHT PARENTHESIS */
238 	const int XK_asterisk                      = 0x002a;  /* U+002A ASTERISK */
239 	const int XK_plus                          = 0x002b;  /* U+002B PLUS SIGN */
240 	const int XK_comma                         = 0x002c;  /* U+002C COMMA */
241 	const int XK_minus                         = 0x002d;  /* U+002D HYPHEN-MINUS */
242 	const int XK_period                        = 0x002e;  /* U+002E FULL STOP */
243 	const int XK_slash                         = 0x002f;  /* U+002F SOLIDUS */
244 	const int XK_0                             = 0x0030;  /* U+0030 DIGIT ZERO */
245 	const int XK_1                             = 0x0031;  /* U+0031 DIGIT ONE */
246 	const int XK_2                             = 0x0032;  /* U+0032 DIGIT TWO */
247 	const int XK_3                             = 0x0033;  /* U+0033 DIGIT THREE */
248 	const int XK_4                             = 0x0034;  /* U+0034 DIGIT FOUR */
249 	const int XK_5                             = 0x0035;  /* U+0035 DIGIT FIVE */
250 	const int XK_6                             = 0x0036;  /* U+0036 DIGIT SIX */
251 	const int XK_7                             = 0x0037;  /* U+0037 DIGIT SEVEN */
252 	const int XK_8                             = 0x0038;  /* U+0038 DIGIT EIGHT */
253 	const int XK_9                             = 0x0039;  /* U+0039 DIGIT NINE */
254 	const int XK_colon                         = 0x003a;  /* U+003A COLON */
255 	const int XK_semicolon                     = 0x003b;  /* U+003B SEMICOLON */
256 	const int XK_less                          = 0x003c;  /* U+003C LESS-THAN SIGN */
257 	const int XK_equal                         = 0x003d;  /* U+003D EQUALS SIGN */
258 	const int XK_greater                       = 0x003e;  /* U+003E GREATER-THAN SIGN */
259 	const int XK_question                      = 0x003f;  /* U+003F QUESTION MARK */
260 	const int XK_at                            = 0x0040;  /* U+0040 COMMERCIAL AT */
261 	const int XK_A                             = 0x0041;  /* U+0041 LATIN CAPITAL LETTER A */
262 	const int XK_B                             = 0x0042;  /* U+0042 LATIN CAPITAL LETTER B */
263 	const int XK_C                             = 0x0043;  /* U+0043 LATIN CAPITAL LETTER C */
264 	const int XK_D                             = 0x0044;  /* U+0044 LATIN CAPITAL LETTER D */
265 	const int XK_E                             = 0x0045;  /* U+0045 LATIN CAPITAL LETTER E */
266 	const int XK_F                             = 0x0046;  /* U+0046 LATIN CAPITAL LETTER F */
267 	const int XK_G                             = 0x0047;  /* U+0047 LATIN CAPITAL LETTER G */
268 	const int XK_H                             = 0x0048;  /* U+0048 LATIN CAPITAL LETTER H */
269 	const int XK_I                             = 0x0049;  /* U+0049 LATIN CAPITAL LETTER I */
270 	const int XK_J                             = 0x004a;  /* U+004A LATIN CAPITAL LETTER J */
271 	const int XK_K                             = 0x004b;  /* U+004B LATIN CAPITAL LETTER K */
272 	const int XK_L                             = 0x004c;  /* U+004C LATIN CAPITAL LETTER L */
273 	const int XK_M                             = 0x004d;  /* U+004D LATIN CAPITAL LETTER M */
274 	const int XK_N                             = 0x004e;  /* U+004E LATIN CAPITAL LETTER N */
275 	const int XK_O                             = 0x004f;  /* U+004F LATIN CAPITAL LETTER O */
276 	const int XK_P                             = 0x0050;  /* U+0050 LATIN CAPITAL LETTER P */
277 	const int XK_Q                             = 0x0051;  /* U+0051 LATIN CAPITAL LETTER Q */
278 	const int XK_R                             = 0x0052;  /* U+0052 LATIN CAPITAL LETTER R */
279 	const int XK_S                             = 0x0053;  /* U+0053 LATIN CAPITAL LETTER S */
280 	const int XK_T                             = 0x0054;  /* U+0054 LATIN CAPITAL LETTER T */
281 	const int XK_U                             = 0x0055;  /* U+0055 LATIN CAPITAL LETTER U */
282 	const int XK_V                             = 0x0056;  /* U+0056 LATIN CAPITAL LETTER V */
283 	const int XK_W                             = 0x0057;  /* U+0057 LATIN CAPITAL LETTER W */
284 	const int XK_X                             = 0x0058;  /* U+0058 LATIN CAPITAL LETTER X */
285 	const int XK_Y                             = 0x0059;  /* U+0059 LATIN CAPITAL LETTER Y */
286 	const int XK_Z                             = 0x005a;  /* U+005A LATIN CAPITAL LETTER Z */
287 	const int XK_bracketleft                   = 0x005b;  /* U+005B LEFT SQUARE BRACKET */
288 	const int XK_backslash                     = 0x005c;  /* U+005C REVERSE SOLIDUS */
289 	const int XK_bracketright                  = 0x005d;  /* U+005D RIGHT SQUARE BRACKET */
290 	const int XK_asciicircum                   = 0x005e;  /* U+005E CIRCUMFLEX ACCENT */
291 	const int XK_underscore                    = 0x005f;  /* U+005F LOW LINE */
292 	const int XK_grave                         = 0x0060;  /* U+0060 GRAVE ACCENT */
293 	const int XK_quoteleft                     = 0x0060;  /* Deprecated */
294 	const int XK_a                             = 0x0061;  /* U+0061 LATIN SMALL LETTER A */
295 	const int XK_b                             = 0x0062;  /* U+0062 LATIN SMALL LETTER B */
296 	const int XK_c                             = 0x0063;  /* U+0063 LATIN SMALL LETTER C */
297 	const int XK_d                             = 0x0064;  /* U+0064 LATIN SMALL LETTER D */
298 	const int XK_e                             = 0x0065;  /* U+0065 LATIN SMALL LETTER E */
299 	const int XK_f                             = 0x0066;  /* U+0066 LATIN SMALL LETTER F */
300 	const int XK_g                             = 0x0067;  /* U+0067 LATIN SMALL LETTER G */
301 	const int XK_h                             = 0x0068;  /* U+0068 LATIN SMALL LETTER H */
302 	const int XK_i                             = 0x0069;  /* U+0069 LATIN SMALL LETTER I */
303 	const int XK_j                             = 0x006a;  /* U+006A LATIN SMALL LETTER J */
304 	const int XK_k                             = 0x006b;  /* U+006B LATIN SMALL LETTER K */
305 	const int XK_l                             = 0x006c;  /* U+006C LATIN SMALL LETTER L */
306 	const int XK_m                             = 0x006d;  /* U+006D LATIN SMALL LETTER M */
307 	const int XK_n                             = 0x006e;  /* U+006E LATIN SMALL LETTER N */
308 	const int XK_o                             = 0x006f;  /* U+006F LATIN SMALL LETTER O */
309 	const int XK_p                             = 0x0070;  /* U+0070 LATIN SMALL LETTER P */
310 	const int XK_q                             = 0x0071;  /* U+0071 LATIN SMALL LETTER Q */
311 	const int XK_r                             = 0x0072;  /* U+0072 LATIN SMALL LETTER R */
312 	const int XK_s                             = 0x0073;  /* U+0073 LATIN SMALL LETTER S */
313 	const int XK_t                             = 0x0074;  /* U+0074 LATIN SMALL LETTER T */
314 	const int XK_u                             = 0x0075;  /* U+0075 LATIN SMALL LETTER U */
315 	const int XK_v                             = 0x0076;  /* U+0076 LATIN SMALL LETTER V */
316 	const int XK_w                             = 0x0077;  /* U+0077 LATIN SMALL LETTER W */
317 	const int XK_x                             = 0x0078;  /* U+0078 LATIN SMALL LETTER X */
318 	const int XK_y                             = 0x0079;  /* U+0079 LATIN SMALL LETTER Y */
319 	const int XK_z                             = 0x007a;  /* U+007A LATIN SMALL LETTER Z */
320 	const int XK_braceleft                     = 0x007b;  /* U+007B LEFT CURLY BRACKET */
321 	const int XK_bar                           = 0x007c;  /* U+007C VERTICAL LINE */
322 	const int XK_braceright                    = 0x007d;  /* U+007D RIGHT CURLY BRACKET */
323 	const int XK_asciitilde                    = 0x007e;  /* U+007E TILDE */
324 
325 	const int XK_nobreakspace                  = 0x00a0;  /* U+00A0 NO-//~ break SPACE */
326 	const int XK_exclamdown                    = 0x00a1;  /* U+00A1 INVERTED EXCLAMATION MARK */
327 	const int XK_cent                          = 0x00a2;  /* U+00A2 CENT SIGN */
328 	const int XK_sterling                      = 0x00a3;  /* U+00A3 POUND SIGN */
329 	const int XK_currency                      = 0x00a4;  /* U+00A4 CURRENCY SIGN */
330 	const int XK_yen                           = 0x00a5;  /* U+00A5 YEN SIGN */
331 	const int XK_brokenbar                     = 0x00a6;  /* U+00A6 BROKEN BAR */
332 	const int XK_section                       = 0x00a7;  /* U+00A7 SECTION SIGN */
333 	const int XK_diaeresis                     = 0x00a8;  /* U+00A8 DIAERESIS */
334 	const int XK_copyright                     = 0x00a9;  /* U+00A9 COPYRIGHT SIGN */
335 	const int XK_ordfeminine                   = 0x00aa;  /* U+00AA FEMININE ORDINAL INDICATOR */
336 	const int XK_guillemotleft                 = 0x00ab;  /* U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */
337 	const int XK_notsign                       = 0x00ac;  /* U+00AC NOT SIGN */
338 	const int XK_hyphen                        = 0x00ad;  /* U+00AD SOFT HYPHEN */
339 	const int XK_registered                    = 0x00ae;  /* U+00AE REGISTERED SIGN */
340 	const int XK_macron                        = 0x00af;  /* U+00AF MACRON */
341 	const int XK_degree                        = 0x00b0;  /* U+00B0 DEGREE SIGN */
342 	const int XK_plusminus                     = 0x00b1;  /* U+00B1 PLUS-MINUS SIGN */
343 	const int XK_twosuperior                   = 0x00b2;  /* U+00B2 SUPERSCRIPT TWO */
344 	const int XK_threesuperior                 = 0x00b3;  /* U+00B3 SUPERSCRIPT THREE */
345 	const int XK_acute                         = 0x00b4;  /* U+00B4 ACUTE ACCENT */
346 	const int XK_mu                            = 0x00b5;  /* U+00B5 MICRO SIGN */
347 	const int XK_paragraph                     = 0x00b6;  /* U+00B6 PILCROW SIGN */
348 	const int XK_periodcentered                = 0x00b7;  /* U+00B7 MIDDLE DOT */
349 	const int XK_cedilla                       = 0x00b8;  /* U+00B8 CEDILLA */
350 	const int XK_onesuperior                   = 0x00b9;  /* U+00B9 SUPERSCRIPT ONE */
351 	const int XK_masculine                     = 0x00ba;  /* U+00BA MASCULINE ORDINAL INDICATOR */
352 	const int XK_guillemotright                = 0x00bb;  /* U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */
353 	const int XK_onequarter                    = 0x00bc;  /* U+00BC VULGAR FRACTION ONE QUARTER */
354 	const int XK_onehalf                       = 0x00bd;  /* U+00BD VULGAR FRACTION ONE HALF */
355 	const int XK_threequarters                 = 0x00be;  /* U+00BE VULGAR FRACTION THREE QUARTERS */
356 	const int XK_questiondown                  = 0x00bf;  /* U+00BF INVERTED QUESTION MARK */
357 	const int XK_Agrave                        = 0x00c0;  /* U+00C0 LATIN CAPITAL LETTER A WITH GRAVE */
358 	const int XK_Aacute                        = 0x00c1;  /* U+00C1 LATIN CAPITAL LETTER A WITH ACUTE */
359 	const int XK_Acircumflex                   = 0x00c2;  /* U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX */
360 	const int XK_Atilde                        = 0x00c3;  /* U+00C3 LATIN CAPITAL LETTER A WITH TILDE */
361 	const int XK_Adiaeresis                    = 0x00c4;  /* U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS */
362 	const int XK_Aring                         = 0x00c5;  /* U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE */
363 	const int XK_AE                            = 0x00c6;  /* U+00C6 LATIN CAPITAL LETTER AE */
364 	const int XK_Ccedilla                      = 0x00c7;  /* U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA */
365 	const int XK_Egrave                        = 0x00c8;  /* U+00C8 LATIN CAPITAL LETTER E WITH GRAVE */
366 	const int XK_Eacute                        = 0x00c9;  /* U+00C9 LATIN CAPITAL LETTER E WITH ACUTE */
367 	const int XK_Ecircumflex                   = 0x00ca;  /* U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX */
368 	const int XK_Ediaeresis                    = 0x00cb;  /* U+00CB LATIN CAPITAL LETTER E WITH DIAERESIS */
369 	const int XK_Igrave                        = 0x00cc;  /* U+00CC LATIN CAPITAL LETTER I WITH GRAVE */
370 	const int XK_Iacute                        = 0x00cd;  /* U+00CD LATIN CAPITAL LETTER I WITH ACUTE */
371 	const int XK_Icircumflex                   = 0x00ce;  /* U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX */
372 	const int XK_Idiaeresis                    = 0x00cf;  /* U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS */
373 	const int XK_ETH                           = 0x00d0;  /* U+00D0 LATIN CAPITAL LETTER ETH */
374 	const int XK_Eth                           = 0x00d0;  /* Deprecated */
375 	const int XK_Ntilde                        = 0x00d1;  /* U+00D1 LATIN CAPITAL LETTER N WITH TILDE */
376 	const int XK_Ograve                        = 0x00d2;  /* U+00D2 LATIN CAPITAL LETTER O WITH GRAVE */
377 	const int XK_Oacute                        = 0x00d3;  /* U+00D3 LATIN CAPITAL LETTER O WITH ACUTE */
378 	const int XK_Ocircumflex                   = 0x00d4;  /* U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX */
379 	const int XK_Otilde                        = 0x00d5;  /* U+00D5 LATIN CAPITAL LETTER O WITH TILDE */
380 	const int XK_Odiaeresis                    = 0x00d6;  /* U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS */
381 	const int XK_multiply                      = 0x00d7;  /* U+00D7 MULTIPLICATION SIGN */
382 	const int XK_Oslash                        = 0x00d8;  /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */
383 	const int XK_Ooblique                      = 0x00d8;  /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */
384 	const int XK_Ugrave                        = 0x00d9;  /* U+00D9 LATIN CAPITAL LETTER U WITH GRAVE */
385 	const int XK_Uacute                        = 0x00da;  /* U+00DA LATIN CAPITAL LETTER U WITH ACUTE */
386 	const int XK_Ucircumflex                   = 0x00db;  /* U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX */
387 	const int XK_Udiaeresis                    = 0x00dc;  /* U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS */
388 	const int XK_Yacute                        = 0x00dd;  /* U+00DD LATIN CAPITAL LETTER Y WITH ACUTE */
389 	const int XK_THORN                         = 0x00de;  /* U+00DE LATIN CAPITAL LETTER THORN */
390 	const int XK_Thorn                         = 0x00de;  /* Deprecated */
391 	const int XK_ssharp                        = 0x00df;  /* U+00DF LATIN SMALL LETTER SHARP S */
392 	const int XK_agrave                        = 0x00e0;  /* U+00E0 LATIN SMALL LETTER A WITH GRAVE */
393 	const int XK_aacute                        = 0x00e1;  /* U+00E1 LATIN SMALL LETTER A WITH ACUTE */
394 	const int XK_acircumflex                   = 0x00e2;  /* U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX */
395 	const int XK_atilde                        = 0x00e3;  /* U+00E3 LATIN SMALL LETTER A WITH TILDE */
396 	const int XK_adiaeresis                    = 0x00e4;  /* U+00E4 LATIN SMALL LETTER A WITH DIAERESIS */
397 	const int XK_aring                         = 0x00e5;  /* U+00E5 LATIN SMALL LETTER A WITH RING ABOVE */
398 	const int XK_ae                            = 0x00e6;  /* U+00E6 LATIN SMALL LETTER AE */
399 	const int XK_ccedilla                      = 0x00e7;  /* U+00E7 LATIN SMALL LETTER C WITH CEDILLA */
400 	const int XK_egrave                        = 0x00e8;  /* U+00E8 LATIN SMALL LETTER E WITH GRAVE */
401 	const int XK_eacute                        = 0x00e9;  /* U+00E9 LATIN SMALL LETTER E WITH ACUTE */
402 	const int XK_ecircumflex                   = 0x00ea;  /* U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX */
403 	const int XK_ediaeresis                    = 0x00eb;  /* U+00EB LATIN SMALL LETTER E WITH DIAERESIS */
404 	const int XK_igrave                        = 0x00ec;  /* U+00EC LATIN SMALL LETTER I WITH GRAVE */
405 	const int XK_iacute                        = 0x00ed;  /* U+00ED LATIN SMALL LETTER I WITH ACUTE */
406 	const int XK_icircumflex                   = 0x00ee;  /* U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX */
407 	const int XK_idiaeresis                    = 0x00ef;  /* U+00EF LATIN SMALL LETTER I WITH DIAERESIS */
408 	const int XK_eth                           = 0x00f0;  /* U+00F0 LATIN SMALL LETTER ETH */
409 	const int XK_ntilde                        = 0x00f1;  /* U+00F1 LATIN SMALL LETTER N WITH TILDE */
410 	const int XK_ograve                        = 0x00f2;  /* U+00F2 LATIN SMALL LETTER O WITH GRAVE */
411 	const int XK_oacute                        = 0x00f3;  /* U+00F3 LATIN SMALL LETTER O WITH ACUTE */
412 	const int XK_ocircumflex                   = 0x00f4;  /* U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX */
413 	const int XK_otilde                        = 0x00f5;  /* U+00F5 LATIN SMALL LETTER O WITH TILDE */
414 	const int XK_odiaeresis                    = 0x00f6;  /* U+00F6 LATIN SMALL LETTER O WITH DIAERESIS */
415 	const int XK_division                      = 0x00f7;  /* U+00F7 DIVISION SIGN */
416 	const int XK_oslash                        = 0x00f8;  /* U+00F8 LATIN SMALL LETTER O WITH STROKE */
417 	const int XK_ooblique                      = 0x00f8;  /* U+00F8 LATIN SMALL LETTER O WITH STROKE */
418 	const int XK_ugrave                        = 0x00f9;  /* U+00F9 LATIN SMALL LETTER U WITH GRAVE */
419 	const int XK_uacute                        = 0x00fa;  /* U+00FA LATIN SMALL LETTER U WITH ACUTE */
420 	const int XK_ucircumflex                   = 0x00fb;  /* U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX */
421 	const int XK_udiaeresis                    = 0x00fc;  /* U+00FC LATIN SMALL LETTER U WITH DIAERESIS */
422 	const int XK_yacute                        = 0x00fd;  /* U+00FD LATIN SMALL LETTER Y WITH ACUTE */
423 	const int XK_thorn                         = 0x00fe;  /* U+00FE LATIN SMALL LETTER THORN */
424 	const int XK_ydiaeresis                    = 0x00ff;  /* U+00FF LATIN SMALL LETTER Y WITH DIAERESIS */
425 }
426 /*
427  * Latin 2
428  * Byte 3 = 1
429  */
430 static if( XK_LATIN2 ){
431 	const int XK_Aogonek                       = 0x01a1;  /* U+0104 LATIN CAPITAL LETTER A WITH OGONEK */
432 	const int XK_breve                         = 0x01a2;  /* U+02D8 BREVE */
433 	const int XK_Lstroke                       = 0x01a3;  /* U+0141 LATIN CAPITAL LETTER L WITH STROKE */
434 	const int XK_Lcaron                        = 0x01a5;  /* U+013D LATIN CAPITAL LETTER L WITH CARON */
435 	const int XK_Sacute                        = 0x01a6;  /* U+015A LATIN CAPITAL LETTER S WITH ACUTE */
436 	const int XK_Scaron                        = 0x01a9;  /* U+0160 LATIN CAPITAL LETTER S WITH CARON */
437 	const int XK_Scedilla                      = 0x01aa;  /* U+015E LATIN CAPITAL LETTER S WITH CEDILLA */
438 	const int XK_Tcaron                        = 0x01ab;  /* U+0164 LATIN CAPITAL LETTER T WITH CARON */
439 	const int XK_Zacute                        = 0x01ac;  /* U+0179 LATIN CAPITAL LETTER Z WITH ACUTE */
440 	const int XK_Zcaron                        = 0x01ae;  /* U+017D LATIN CAPITAL LETTER Z WITH CARON */
441 	const int XK_Zabovedot                     = 0x01af;  /* U+017B LATIN CAPITAL LETTER Z WITH DOT ABOVE */
442 	const int XK_aogonek                       = 0x01b1;  /* U+0105 LATIN SMALL LETTER A WITH OGONEK */
443 	const int XK_ogonek                        = 0x01b2;  /* U+02DB OGONEK */
444 	const int XK_lstroke                       = 0x01b3;  /* U+0142 LATIN SMALL LETTER L WITH STROKE */
445 	const int XK_lcaron                        = 0x01b5;  /* U+013E LATIN SMALL LETTER L WITH CARON */
446 	const int XK_sacute                        = 0x01b6;  /* U+015B LATIN SMALL LETTER S WITH ACUTE */
447 	const int XK_caron                         = 0x01b7;  /* U+02C7 CARON */
448 	const int XK_scaron                        = 0x01b9;  /* U+0161 LATIN SMALL LETTER S WITH CARON */
449 	const int XK_scedilla                      = 0x01ba;  /* U+015F LATIN SMALL LETTER S WITH CEDILLA */
450 	const int XK_tcaron                        = 0x01bb;  /* U+0165 LATIN SMALL LETTER T WITH CARON */
451 	const int XK_zacute                        = 0x01bc;  /* U+017A LATIN SMALL LETTER Z WITH ACUTE */
452 	const int XK_doubleacute                   = 0x01bd;  /* U+02DD DOUBLE ACUTE ACCENT */
453 	const int XK_zcaron                        = 0x01be;  /* U+017E LATIN SMALL LETTER Z WITH CARON */
454 	const int XK_zabovedot                     = 0x01bf;  /* U+017C LATIN SMALL LETTER Z WITH DOT ABOVE */
455 	const int XK_Racute                        = 0x01c0;  /* U+0154 LATIN CAPITAL LETTER R WITH ACUTE */
456 	const int XK_Abreve                        = 0x01c3;  /* U+0102 LATIN CAPITAL LETTER A WITH BREVE */
457 	const int XK_Lacute                        = 0x01c5;  /* U+0139 LATIN CAPITAL LETTER L WITH ACUTE */
458 	const int XK_Cacute                        = 0x01c6;  /* U+0106 LATIN CAPITAL LETTER C WITH ACUTE */
459 	const int XK_Ccaron                        = 0x01c8;  /* U+010C LATIN CAPITAL LETTER C WITH CARON */
460 	const int XK_Eogonek                       = 0x01ca;  /* U+0118 LATIN CAPITAL LETTER E WITH OGONEK */
461 	const int XK_Ecaron                        = 0x01cc;  /* U+011A LATIN CAPITAL LETTER E WITH CARON */
462 	const int XK_Dcaron                        = 0x01cf;  /* U+010E LATIN CAPITAL LETTER D WITH CARON */
463 	const int XK_Dstroke                       = 0x01d0;  /* U+0110 LATIN CAPITAL LETTER D WITH STROKE */
464 	const int XK_Nacute                        = 0x01d1;  /* U+0143 LATIN CAPITAL LETTER N WITH ACUTE */
465 	const int XK_Ncaron                        = 0x01d2;  /* U+0147 LATIN CAPITAL LETTER N WITH CARON */
466 	const int XK_Odoubleacute                  = 0x01d5;  /* U+0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */
467 	const int XK_Rcaron                        = 0x01d8;  /* U+0158 LATIN CAPITAL LETTER R WITH CARON */
468 	const int XK_Uring                         = 0x01d9;  /* U+016E LATIN CAPITAL LETTER U WITH RING ABOVE */
469 	const int XK_Udoubleacute                  = 0x01db;  /* U+0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */
470 	const int XK_Tcedilla                      = 0x01de;  /* U+0162 LATIN CAPITAL LETTER T WITH CEDILLA */
471 	const int XK_racute                        = 0x01e0;  /* U+0155 LATIN SMALL LETTER R WITH ACUTE */
472 	const int XK_abreve                        = 0x01e3;  /* U+0103 LATIN SMALL LETTER A WITH BREVE */
473 	const int XK_lacute                        = 0x01e5;  /* U+013A LATIN SMALL LETTER L WITH ACUTE */
474 	const int XK_cacute                        = 0x01e6;  /* U+0107 LATIN SMALL LETTER C WITH ACUTE */
475 	const int XK_ccaron                        = 0x01e8;  /* U+010D LATIN SMALL LETTER C WITH CARON */
476 	const int XK_eogonek                       = 0x01ea;  /* U+0119 LATIN SMALL LETTER E WITH OGONEK */
477 	const int XK_ecaron                        = 0x01ec;  /* U+011B LATIN SMALL LETTER E WITH CARON */
478 	const int XK_dcaron                        = 0x01ef;  /* U+010F LATIN SMALL LETTER D WITH CARON */
479 	const int XK_dstroke                       = 0x01f0;  /* U+0111 LATIN SMALL LETTER D WITH STROKE */
480 	const int XK_nacute                        = 0x01f1;  /* U+0144 LATIN SMALL LETTER N WITH ACUTE */
481 	const int XK_ncaron                        = 0x01f2;  /* U+0148 LATIN SMALL LETTER N WITH CARON */
482 	const int XK_odoubleacute                  = 0x01f5;  /* U+0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE */
483 	const int XK_rcaron                        = 0x01f8;  /* U+0159 LATIN SMALL LETTER R WITH CARON */
484 	const int XK_uring                         = 0x01f9;  /* U+016F LATIN SMALL LETTER U WITH RING ABOVE */
485 	const int XK_udoubleacute                  = 0x01fb;  /* U+0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE */
486 	const int XK_tcedilla                      = 0x01fe;  /* U+0163 LATIN SMALL LETTER T WITH CEDILLA */
487 	const int XK_abovedot                      = 0x01ff;  /* U+02D9 DOT ABOVE */
488 }
489