keycodes: fix keymap compilation with no aliases and malloc(0)==NULL
[platform/upstream/libxkbcommon.git] / test / data / keymaps / no-aliases.xkb
1 xkb_keymap {
2 xkb_keycodes "evdev_aliases(qwerty)" {
3         minimum = 8;
4         maximum = 255;
5         <ESC>                = 9;
6         <AE01>               = 10;
7         <AE02>               = 11;
8         <AE03>               = 12;
9         <AE04>               = 13;
10         <AE05>               = 14;
11         <AE06>               = 15;
12         <AE07>               = 16;
13         <AE08>               = 17;
14         <AE09>               = 18;
15         <AE10>               = 19;
16         <AE11>               = 20;
17         <AE12>               = 21;
18         <BKSP>               = 22;
19         <TAB>                = 23;
20         <AD01>               = 24;
21         <AD02>               = 25;
22         <AD03>               = 26;
23         <AD04>               = 27;
24         <AD05>               = 28;
25         <AD06>               = 29;
26         <AD07>               = 30;
27         <AD08>               = 31;
28         <AD09>               = 32;
29         <AD10>               = 33;
30         <AD11>               = 34;
31         <AD12>               = 35;
32         <RTRN>               = 36;
33         <LCTL>               = 37;
34         <AC01>               = 38;
35         <AC02>               = 39;
36         <AC03>               = 40;
37         <AC04>               = 41;
38         <AC05>               = 42;
39         <AC06>               = 43;
40         <AC07>               = 44;
41         <AC08>               = 45;
42         <AC09>               = 46;
43         <AC10>               = 47;
44         <AC11>               = 48;
45         <TLDE>               = 49;
46         <LFSH>               = 50;
47         <BKSL>               = 51;
48         <AB01>               = 52;
49         <AB02>               = 53;
50         <AB03>               = 54;
51         <AB04>               = 55;
52         <AB05>               = 56;
53         <AB06>               = 57;
54         <AB07>               = 58;
55         <AB08>               = 59;
56         <AB09>               = 60;
57         <AB10>               = 61;
58         <RTSH>               = 62;
59         <KPMU>               = 63;
60         <LALT>               = 64;
61         <SPCE>               = 65;
62         <CAPS>               = 66;
63         <FK01>               = 67;
64         <FK02>               = 68;
65         <FK03>               = 69;
66         <FK04>               = 70;
67         <FK05>               = 71;
68         <FK06>               = 72;
69         <FK07>               = 73;
70         <FK08>               = 74;
71         <FK09>               = 75;
72         <FK10>               = 76;
73         <NMLK>               = 77;
74         <SCLK>               = 78;
75         <KP7>                = 79;
76         <KP8>                = 80;
77         <KP9>                = 81;
78         <KPSU>               = 82;
79         <KP4>                = 83;
80         <KP5>                = 84;
81         <KP6>                = 85;
82         <KPAD>               = 86;
83         <KP1>                = 87;
84         <KP2>                = 88;
85         <KP3>                = 89;
86         <KP0>                = 90;
87         <KPDL>               = 91;
88         <LVL3>               = 92;
89         <LSGT>               = 94;
90         <FK11>               = 95;
91         <FK12>               = 96;
92         <AB11>               = 97;
93         <KATA>               = 98;
94         <HIRA>               = 99;
95         <HENK>               = 100;
96         <HKTG>               = 101;
97         <MUHE>               = 102;
98         <JPCM>               = 103;
99         <KPEN>               = 104;
100         <RCTL>               = 105;
101         <KPDV>               = 106;
102         <PRSC>               = 107;
103         <RALT>               = 108;
104         <LNFD>               = 109;
105         <HOME>               = 110;
106         <UP>                 = 111;
107         <PGUP>               = 112;
108         <LEFT>               = 113;
109         <RGHT>               = 114;
110         <END>                = 115;
111         <DOWN>               = 116;
112         <PGDN>               = 117;
113         <INS>                = 118;
114         <DELE>               = 119;
115         <I120>               = 120;
116         <MUTE>               = 121;
117         <VOL->               = 122;
118         <VOL+>               = 123;
119         <POWR>               = 124;
120         <KPEQ>               = 125;
121         <I126>               = 126;
122         <PAUS>               = 127;
123         <I128>               = 128;
124         <I129>               = 129;
125         <HNGL>               = 130;
126         <HJCV>               = 131;
127         <AE13>               = 132;
128         <LWIN>               = 133;
129         <RWIN>               = 134;
130         <COMP>               = 135;
131         <STOP>               = 136;
132         <AGAI>               = 137;
133         <PROP>               = 138;
134         <UNDO>               = 139;
135         <FRNT>               = 140;
136         <COPY>               = 141;
137         <OPEN>               = 142;
138         <PAST>               = 143;
139         <FIND>               = 144;
140         <CUT>                = 145;
141         <HELP>               = 146;
142         <I147>               = 147;
143         <I148>               = 148;
144         <I149>               = 149;
145         <I150>               = 150;
146         <I151>               = 151;
147         <I152>               = 152;
148         <I153>               = 153;
149         <I154>               = 154;
150         <I155>               = 155;
151         <I156>               = 156;
152         <I157>               = 157;
153         <I158>               = 158;
154         <I159>               = 159;
155         <I160>               = 160;
156         <I161>               = 161;
157         <I162>               = 162;
158         <I163>               = 163;
159         <I164>               = 164;
160         <I165>               = 165;
161         <I166>               = 166;
162         <I167>               = 167;
163         <I168>               = 168;
164         <I169>               = 169;
165         <I170>               = 170;
166         <I171>               = 171;
167         <I172>               = 172;
168         <I173>               = 173;
169         <I174>               = 174;
170         <I175>               = 175;
171         <I176>               = 176;
172         <I177>               = 177;
173         <I178>               = 178;
174         <I179>               = 179;
175         <I180>               = 180;
176         <I181>               = 181;
177         <I182>               = 182;
178         <I183>               = 183;
179         <I184>               = 184;
180         <I185>               = 185;
181         <I186>               = 186;
182         <I187>               = 187;
183         <I188>               = 188;
184         <I189>               = 189;
185         <I190>               = 190;
186         <FK13>               = 191;
187         <FK14>               = 192;
188         <FK15>               = 193;
189         <FK16>               = 194;
190         <FK17>               = 195;
191         <FK18>               = 196;
192         <FK19>               = 197;
193         <FK20>               = 198;
194         <FK21>               = 199;
195         <FK22>               = 200;
196         <FK23>               = 201;
197         <FK24>               = 202;
198         <MDSW>               = 203;
199         <ALT>                = 204;
200         <META>               = 205;
201         <SUPR>               = 206;
202         <HYPR>               = 207;
203         <I208>               = 208;
204         <I209>               = 209;
205         <I210>               = 210;
206         <I211>               = 211;
207         <I212>               = 212;
208         <I213>               = 213;
209         <I214>               = 214;
210         <I215>               = 215;
211         <I216>               = 216;
212         <I217>               = 217;
213         <I218>               = 218;
214         <I219>               = 219;
215         <I220>               = 220;
216         <I221>               = 221;
217         <I222>               = 222;
218         <I223>               = 223;
219         <I224>               = 224;
220         <I225>               = 225;
221         <I226>               = 226;
222         <I227>               = 227;
223         <I228>               = 228;
224         <I229>               = 229;
225         <I230>               = 230;
226         <I231>               = 231;
227         <I232>               = 232;
228         <I233>               = 233;
229         <I234>               = 234;
230         <I235>               = 235;
231         <I236>               = 236;
232         <I237>               = 237;
233         <I238>               = 238;
234         <I239>               = 239;
235         <I240>               = 240;
236         <I241>               = 241;
237         <I242>               = 242;
238         <I243>               = 243;
239         <I244>               = 244;
240         <I245>               = 245;
241         <I246>               = 246;
242         <I247>               = 247;
243         <I248>               = 248;
244         <I249>               = 249;
245         <I250>               = 250;
246         <I251>               = 251;
247         <I252>               = 252;
248         <I253>               = 253;
249         indicator 1 = "Caps Lock";
250         indicator 2 = "Num Lock";
251         indicator 3 = "Scroll Lock";
252         indicator 4 = "Compose";
253         indicator 5 = "Kana";
254         indicator 6 = "Sleep";
255         indicator 7 = "Suspend";
256         indicator 8 = "Mute";
257         indicator 9 = "Misc";
258         indicator 10 = "Mail";
259         indicator 11 = "Charging";
260         indicator 12 = "Shift Lock";
261         indicator 13 = "Group 2";
262         indicator 14 = "Mouse Keys";
263 };
264
265 xkb_types "complete" {
266         virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
267
268         type "ONE_LEVEL" {
269                 modifiers= none;
270                 level_name[Level1]= "Any";
271         };
272         type "TWO_LEVEL" {
273                 modifiers= Shift;
274                 map[Shift]= Level2;
275                 level_name[Level1]= "Base";
276                 level_name[Level2]= "Shift";
277         };
278         type "ALPHABETIC" {
279                 modifiers= Shift+Lock;
280                 map[Shift]= Level2;
281                 map[Lock]= Level2;
282                 level_name[Level1]= "Base";
283                 level_name[Level2]= "Caps";
284         };
285         type "SHIFT+ALT" {
286                 modifiers= Shift+Alt;
287                 map[Shift+Alt]= Level2;
288                 level_name[Level1]= "Base";
289                 level_name[Level2]= "Shift+Alt";
290         };
291         type "PC_CONTROL_LEVEL2" {
292                 modifiers= Control;
293                 map[Control]= Level2;
294                 level_name[Level1]= "Base";
295                 level_name[Level2]= "Control";
296         };
297         type "PC_LCONTROL_LEVEL2" {
298                 modifiers= LControl;
299                 map[LControl]= Level2;
300                 level_name[Level1]= "Base";
301                 level_name[Level2]= "LControl";
302         };
303         type "PC_RCONTROL_LEVEL2" {
304                 modifiers= RControl;
305                 map[RControl]= Level2;
306                 level_name[Level1]= "Base";
307                 level_name[Level2]= "RControl";
308         };
309         type "PC_ALT_LEVEL2" {
310                 modifiers= Alt;
311                 map[Alt]= Level2;
312                 level_name[Level1]= "Base";
313                 level_name[Level2]= "Alt";
314         };
315         type "PC_LALT_LEVEL2" {
316                 modifiers= LAlt;
317                 map[LAlt]= Level2;
318                 level_name[Level1]= "Base";
319                 level_name[Level2]= "LAlt";
320         };
321         type "PC_RALT_LEVEL2" {
322                 modifiers= RAlt;
323                 map[RAlt]= Level2;
324                 level_name[Level1]= "Base";
325                 level_name[Level2]= "RAlt";
326         };
327         type "CTRL+ALT" {
328                 modifiers= Shift+Control+Alt+LevelThree;
329                 map[Shift]= Level2;
330                 preserve[Shift]= Shift;
331                 map[LevelThree]= Level3;
332                 map[Shift+LevelThree]= Level4;
333                 preserve[Shift+LevelThree]= Shift;
334                 map[Control+Alt]= Level5;
335                 level_name[Level1]= "Base";
336                 level_name[Level2]= "Shift";
337                 level_name[Level3]= "Alt Base";
338                 level_name[Level4]= "Shift Alt";
339                 level_name[Level5]= "Ctrl+Alt";
340         };
341         type "LOCAL_EIGHT_LEVEL" {
342                 modifiers= Shift+Lock+Control+LevelThree;
343                 map[Shift]= Level2;
344                 map[Lock]= Level2;
345                 map[LevelThree]= Level3;
346                 map[Shift+Lock+LevelThree]= Level3;
347                 map[Shift+LevelThree]= Level4;
348                 map[Lock+LevelThree]= Level4;
349                 map[Control]= Level5;
350                 map[Shift+Lock+Control]= Level5;
351                 map[Shift+Control]= Level6;
352                 map[Lock+Control]= Level6;
353                 map[Control+LevelThree]= Level7;
354                 map[Shift+Lock+Control+LevelThree]= Level7;
355                 map[Shift+Control+LevelThree]= Level8;
356                 map[Lock+Control+LevelThree]= Level8;
357                 level_name[Level1]= "Base";
358                 level_name[Level2]= "Shift";
359                 level_name[Level3]= "Level3";
360                 level_name[Level4]= "Shift Level3";
361                 level_name[Level5]= "Ctrl";
362                 level_name[Level6]= "Shift Ctrl";
363                 level_name[Level7]= "Level3 Ctrl";
364                 level_name[Level8]= "Shift Level3 Ctrl";
365         };
366         type "THREE_LEVEL" {
367                 modifiers= Shift+LevelThree;
368                 map[Shift]= Level2;
369                 map[LevelThree]= Level3;
370                 map[Shift+LevelThree]= Level3;
371                 level_name[Level1]= "Base";
372                 level_name[Level2]= "Shift";
373                 level_name[Level3]= "Level3";
374         };
375         type "EIGHT_LEVEL" {
376                 modifiers= Shift+LevelThree+LevelFive;
377                 map[Shift]= Level2;
378                 map[LevelThree]= Level3;
379                 map[Shift+LevelThree]= Level4;
380                 map[LevelFive]= Level5;
381                 map[Shift+LevelFive]= Level6;
382                 map[LevelThree+LevelFive]= Level7;
383                 map[Shift+LevelThree+LevelFive]= Level8;
384                 level_name[Level1]= "Base";
385                 level_name[Level2]= "Shift";
386                 level_name[Level3]= "Alt Base";
387                 level_name[Level4]= "Shift Alt";
388                 level_name[Level5]= "X";
389                 level_name[Level6]= "X Shift";
390                 level_name[Level7]= "X Alt Base";
391                 level_name[Level8]= "X Shift Alt";
392         };
393         type "EIGHT_LEVEL_ALPHABETIC" {
394                 modifiers= Shift+Lock+LevelThree+LevelFive;
395                 map[Shift]= Level2;
396                 map[Lock]= Level2;
397                 map[LevelThree]= Level3;
398                 map[Shift+LevelThree]= Level4;
399                 map[Lock+LevelThree]= Level4;
400                 map[Shift+Lock+LevelThree]= Level3;
401                 map[LevelFive]= Level5;
402                 map[Shift+LevelFive]= Level6;
403                 map[Lock+LevelFive]= Level6;
404                 map[LevelThree+LevelFive]= Level7;
405                 map[Shift+LevelThree+LevelFive]= Level8;
406                 map[Lock+LevelThree+LevelFive]= Level8;
407                 map[Shift+Lock+LevelThree+LevelFive]= Level7;
408                 level_name[Level1]= "Base";
409                 level_name[Level2]= "Shift";
410                 level_name[Level3]= "Alt Base";
411                 level_name[Level4]= "Shift Alt";
412                 level_name[Level5]= "X";
413                 level_name[Level6]= "X Shift";
414                 level_name[Level7]= "X Alt Base";
415                 level_name[Level8]= "X Shift Alt";
416         };
417         type "EIGHT_LEVEL_SEMIALPHABETIC" {
418                 modifiers= Shift+Lock+LevelThree+LevelFive;
419                 map[Shift]= Level2;
420                 map[Lock]= Level2;
421                 map[LevelThree]= Level3;
422                 map[Shift+LevelThree]= Level4;
423                 map[Lock+LevelThree]= Level3;
424                 preserve[Lock+LevelThree]= Lock;
425                 map[Shift+Lock+LevelThree]= Level4;
426                 preserve[Shift+Lock+LevelThree]= Lock;
427                 map[LevelFive]= Level5;
428                 map[Shift+LevelFive]= Level6;
429                 map[Lock+LevelFive]= Level6;
430                 preserve[Lock+LevelFive]= Lock;
431                 map[Shift+Lock+LevelFive]= Level6;
432                 preserve[Shift+Lock+LevelFive]= Lock;
433                 map[LevelThree+LevelFive]= Level7;
434                 map[Shift+LevelThree+LevelFive]= Level8;
435                 map[Lock+LevelThree+LevelFive]= Level7;
436                 preserve[Lock+LevelThree+LevelFive]= Lock;
437                 map[Shift+Lock+LevelThree+LevelFive]= Level8;
438                 preserve[Shift+Lock+LevelThree+LevelFive]= Lock;
439                 level_name[Level1]= "Base";
440                 level_name[Level2]= "Shift";
441                 level_name[Level3]= "Alt Base";
442                 level_name[Level4]= "Shift Alt";
443                 level_name[Level5]= "X";
444                 level_name[Level6]= "X Shift";
445                 level_name[Level7]= "X Alt Base";
446                 level_name[Level8]= "X Shift Alt";
447         };
448         type "FOUR_LEVEL" {
449                 modifiers= Shift+LevelThree;
450                 map[Shift]= Level2;
451                 map[LevelThree]= Level3;
452                 map[Shift+LevelThree]= Level4;
453                 level_name[Level1]= "Base";
454                 level_name[Level2]= "Shift";
455                 level_name[Level3]= "Alt Base";
456                 level_name[Level4]= "Shift Alt";
457         };
458         type "FOUR_LEVEL_ALPHABETIC" {
459                 modifiers= Shift+Lock+LevelThree;
460                 map[Shift]= Level2;
461                 map[Lock]= Level2;
462                 map[LevelThree]= Level3;
463                 map[Shift+LevelThree]= Level4;
464                 map[Lock+LevelThree]= Level4;
465                 map[Shift+Lock+LevelThree]= Level3;
466                 level_name[Level1]= "Base";
467                 level_name[Level2]= "Shift";
468                 level_name[Level3]= "Alt Base";
469                 level_name[Level4]= "Shift Alt";
470         };
471         type "FOUR_LEVEL_SEMIALPHABETIC" {
472                 modifiers= Shift+Lock+LevelThree;
473                 map[Shift]= Level2;
474                 map[Lock]= Level2;
475                 map[LevelThree]= Level3;
476                 map[Shift+LevelThree]= Level4;
477                 map[Lock+LevelThree]= Level3;
478                 preserve[Lock+LevelThree]= Lock;
479                 map[Shift+Lock+LevelThree]= Level4;
480                 preserve[Shift+Lock+LevelThree]= Lock;
481                 level_name[Level1]= "Base";
482                 level_name[Level2]= "Shift";
483                 level_name[Level3]= "Alt Base";
484                 level_name[Level4]= "Shift Alt";
485         };
486         type "FOUR_LEVEL_MIXED_KEYPAD" {
487                 modifiers= Shift+NumLock+LevelThree;
488                 map[NumLock]= Level2;
489                 map[Shift]= Level2;
490                 map[LevelThree]= Level3;
491                 map[NumLock+LevelThree]= Level3;
492                 map[Shift+LevelThree]= Level4;
493                 map[Shift+NumLock+LevelThree]= Level4;
494                 level_name[Level1]= "Base";
495                 level_name[Level2]= "Number";
496                 level_name[Level3]= "Alt Base";
497                 level_name[Level4]= "Shift Alt";
498         };
499         type "FOUR_LEVEL_X" {
500                 modifiers= Shift+Control+Alt+LevelThree;
501                 map[LevelThree]= Level2;
502                 map[Shift+LevelThree]= Level3;
503                 map[Control+Alt]= Level4;
504                 level_name[Level1]= "Base";
505                 level_name[Level2]= "Alt Base";
506                 level_name[Level3]= "Shift Alt";
507                 level_name[Level4]= "Ctrl+Alt";
508         };
509         type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" {
510                 modifiers= Shift+Lock+LevelThree;
511                 map[Shift]= Level2;
512                 map[Lock]= Level4;
513                 preserve[Lock]= Lock;
514                 map[LevelThree]= Level3;
515                 map[Shift+LevelThree]= Level4;
516                 map[Lock+LevelThree]= Level3;
517                 preserve[Lock+LevelThree]= Lock;
518                 map[Shift+Lock+LevelThree]= Level3;
519                 level_name[Level1]= "Base";
520                 level_name[Level2]= "Shift";
521                 level_name[Level3]= "AltGr Base";
522                 level_name[Level4]= "Shift AltGr";
523         };
524         type "FOUR_LEVEL_PLUS_LOCK" {
525                 modifiers= Shift+Lock+LevelThree;
526                 map[Shift]= Level2;
527                 map[LevelThree]= Level3;
528                 map[Shift+LevelThree]= Level4;
529                 map[Lock]= Level5;
530                 map[Shift+Lock]= Level2;
531                 map[Lock+LevelThree]= Level3;
532                 map[Shift+Lock+LevelThree]= Level4;
533                 level_name[Level1]= "Base";
534                 level_name[Level2]= "Shift";
535                 level_name[Level3]= "Alt Base";
536                 level_name[Level4]= "Shift Alt";
537                 level_name[Level5]= "Lock";
538         };
539         type "KEYPAD" {
540                 modifiers= Shift+NumLock;
541                 map[Shift]= Level2;
542                 map[NumLock]= Level2;
543                 level_name[Level1]= "Base";
544                 level_name[Level2]= "Number";
545         };
546         type "FOUR_LEVEL_KEYPAD" {
547                 modifiers= Shift+NumLock+LevelThree;
548                 map[Shift]= Level2;
549                 map[NumLock]= Level2;
550                 map[LevelThree]= Level3;
551                 map[Shift+LevelThree]= Level4;
552                 map[NumLock+LevelThree]= Level4;
553                 map[Shift+NumLock+LevelThree]= Level3;
554                 level_name[Level1]= "Base";
555                 level_name[Level2]= "Number";
556                 level_name[Level3]= "Alt Base";
557                 level_name[Level4]= "Alt Number";
558         };
559 };
560
561 xkb_compatibility "complete" {
562         virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
563
564         interpret.useModMapMods= AnyLevel;
565         interpret.repeat= False;
566         interpret ISO_Level2_Latch+Exactly(Shift) {
567                 useModMapMods=level1;
568                 action= LatchMods(modifiers=Shift,clearLocks,latchToLock);
569         };
570         interpret Shift_Lock+AnyOf(Shift+Lock) {
571                 action= LockMods(modifiers=Shift);
572         };
573         interpret Num_Lock+AnyOf(all) {
574                 virtualModifier= NumLock;
575                 action= LockMods(modifiers=NumLock);
576         };
577         interpret ISO_Level3_Shift+AnyOf(all) {
578                 virtualModifier= LevelThree;
579                 useModMapMods=level1;
580                 action= SetMods(modifiers=LevelThree,clearLocks);
581         };
582         interpret ISO_Level3_Latch+AnyOf(all) {
583                 virtualModifier= LevelThree;
584                 useModMapMods=level1;
585                 action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
586         };
587         interpret ISO_Level3_Lock+AnyOf(all) {
588                 virtualModifier= LevelThree;
589                 useModMapMods=level1;
590                 action= LockMods(modifiers=LevelThree);
591         };
592         interpret Alt_L+AnyOf(all) {
593                 virtualModifier= Alt;
594                 action= SetMods(modifiers=modMapMods,clearLocks);
595         };
596         interpret Alt_R+AnyOf(all) {
597                 virtualModifier= Alt;
598                 action= SetMods(modifiers=modMapMods,clearLocks);
599         };
600         interpret Meta_L+AnyOf(all) {
601                 virtualModifier= Meta;
602                 action= SetMods(modifiers=modMapMods,clearLocks);
603         };
604         interpret Meta_R+AnyOf(all) {
605                 virtualModifier= Meta;
606                 action= SetMods(modifiers=modMapMods,clearLocks);
607         };
608         interpret Super_L+AnyOf(all) {
609                 virtualModifier= Super;
610                 action= SetMods(modifiers=modMapMods,clearLocks);
611         };
612         interpret Super_R+AnyOf(all) {
613                 virtualModifier= Super;
614                 action= SetMods(modifiers=modMapMods,clearLocks);
615         };
616         interpret Hyper_L+AnyOf(all) {
617                 virtualModifier= Hyper;
618                 action= SetMods(modifiers=modMapMods,clearLocks);
619         };
620         interpret Hyper_R+AnyOf(all) {
621                 virtualModifier= Hyper;
622                 action= SetMods(modifiers=modMapMods,clearLocks);
623         };
624         interpret Scroll_Lock+AnyOf(all) {
625                 virtualModifier= ScrollLock;
626                 action= LockMods(modifiers=modMapMods);
627         };
628         interpret ISO_Level5_Shift+AnyOf(all) {
629                 virtualModifier= LevelFive;
630                 useModMapMods=level1;
631                 action= SetMods(modifiers=LevelFive,clearLocks);
632         };
633         interpret ISO_Level5_Latch+AnyOf(all) {
634                 virtualModifier= LevelFive;
635                 action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
636         };
637         interpret ISO_Level5_Lock+AnyOf(all) {
638                 virtualModifier= LevelFive;
639                 action= LockMods(modifiers=LevelFive);
640         };
641         interpret Mode_switch+AnyOfOrNone(all) {
642                 virtualModifier= AltGr;
643                 useModMapMods=level1;
644                 action= SetGroup(group=+1);
645         };
646         interpret ISO_Level3_Shift+AnyOfOrNone(all) {
647                 action= SetMods(modifiers=LevelThree,clearLocks);
648         };
649         interpret ISO_Level3_Latch+AnyOfOrNone(all) {
650                 action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
651         };
652         interpret ISO_Level3_Lock+AnyOfOrNone(all) {
653                 action= LockMods(modifiers=LevelThree);
654         };
655         interpret ISO_Group_Latch+AnyOfOrNone(all) {
656                 virtualModifier= AltGr;
657                 useModMapMods=level1;
658                 action= LatchGroup(group=2);
659         };
660         interpret ISO_Next_Group+AnyOfOrNone(all) {
661                 virtualModifier= AltGr;
662                 useModMapMods=level1;
663                 action= LockGroup(group=+1);
664         };
665         interpret ISO_Prev_Group+AnyOfOrNone(all) {
666                 virtualModifier= AltGr;
667                 useModMapMods=level1;
668                 action= LockGroup(group=-1);
669         };
670         interpret ISO_First_Group+AnyOfOrNone(all) {
671                 action= LockGroup(group=1);
672         };
673         interpret ISO_Last_Group+AnyOfOrNone(all) {
674                 action= LockGroup(group=2);
675         };
676         interpret KP_1+AnyOfOrNone(all) {
677                 repeat= True;
678                 action= MovePtr(x=-1,y=+1);
679         };
680         interpret KP_End+AnyOfOrNone(all) {
681                 repeat= True;
682                 action= MovePtr(x=-1,y=+1);
683         };
684         interpret KP_2+AnyOfOrNone(all) {
685                 repeat= True;
686                 action= MovePtr(x=+0,y=+1);
687         };
688         interpret KP_Down+AnyOfOrNone(all) {
689                 repeat= True;
690                 action= MovePtr(x=+0,y=+1);
691         };
692         interpret KP_3+AnyOfOrNone(all) {
693                 repeat= True;
694                 action= MovePtr(x=+1,y=+1);
695         };
696         interpret KP_Next+AnyOfOrNone(all) {
697                 repeat= True;
698                 action= MovePtr(x=+1,y=+1);
699         };
700         interpret KP_4+AnyOfOrNone(all) {
701                 repeat= True;
702                 action= MovePtr(x=-1,y=+0);
703         };
704         interpret KP_Left+AnyOfOrNone(all) {
705                 repeat= True;
706                 action= MovePtr(x=-1,y=+0);
707         };
708         interpret KP_6+AnyOfOrNone(all) {
709                 repeat= True;
710                 action= MovePtr(x=+1,y=+0);
711         };
712         interpret KP_Right+AnyOfOrNone(all) {
713                 repeat= True;
714                 action= MovePtr(x=+1,y=+0);
715         };
716         interpret KP_7+AnyOfOrNone(all) {
717                 repeat= True;
718                 action= MovePtr(x=-1,y=-1);
719         };
720         interpret KP_Home+AnyOfOrNone(all) {
721                 repeat= True;
722                 action= MovePtr(x=-1,y=-1);
723         };
724         interpret KP_8+AnyOfOrNone(all) {
725                 repeat= True;
726                 action= MovePtr(x=+0,y=-1);
727         };
728         interpret KP_Up+AnyOfOrNone(all) {
729                 repeat= True;
730                 action= MovePtr(x=+0,y=-1);
731         };
732         interpret KP_9+AnyOfOrNone(all) {
733                 repeat= True;
734                 action= MovePtr(x=+1,y=-1);
735         };
736         interpret KP_Prior+AnyOfOrNone(all) {
737                 repeat= True;
738                 action= MovePtr(x=+1,y=-1);
739         };
740         interpret KP_5+AnyOfOrNone(all) {
741                 repeat= True;
742                 action= PtrBtn(button=default);
743         };
744         interpret KP_Begin+AnyOfOrNone(all) {
745                 repeat= True;
746                 action= PtrBtn(button=default);
747         };
748         interpret KP_F2+AnyOfOrNone(all) {
749                 repeat= True;
750                 action= SetPtrDflt(affect=button,button=1);
751         };
752         interpret KP_Divide+AnyOfOrNone(all) {
753                 repeat= True;
754                 action= SetPtrDflt(affect=button,button=1);
755         };
756         interpret KP_F3+AnyOfOrNone(all) {
757                 repeat= True;
758                 action= SetPtrDflt(affect=button,button=2);
759         };
760         interpret KP_Multiply+AnyOfOrNone(all) {
761                 repeat= True;
762                 action= SetPtrDflt(affect=button,button=2);
763         };
764         interpret KP_F4+AnyOfOrNone(all) {
765                 repeat= True;
766                 action= SetPtrDflt(affect=button,button=3);
767         };
768         interpret KP_Subtract+AnyOfOrNone(all) {
769                 repeat= True;
770                 action= SetPtrDflt(affect=button,button=3);
771         };
772         interpret KP_Separator+AnyOfOrNone(all) {
773                 repeat= True;
774                 action= PtrBtn(button=default,count=2);
775         };
776         interpret KP_Add+AnyOfOrNone(all) {
777                 repeat= True;
778                 action= PtrBtn(button=default,count=2);
779         };
780         interpret KP_0+AnyOfOrNone(all) {
781                 repeat= True;
782                 action= LockPtrBtn(button=default,affect=lock);
783         };
784         interpret KP_Insert+AnyOfOrNone(all) {
785                 repeat= True;
786                 action= LockPtrBtn(button=default,affect=lock);
787         };
788         interpret KP_Decimal+AnyOfOrNone(all) {
789                 repeat= True;
790                 action= LockPtrBtn(button=default,affect=unlock);
791         };
792         interpret KP_Delete+AnyOfOrNone(all) {
793                 repeat= True;
794                 action= LockPtrBtn(button=default,affect=unlock);
795         };
796         interpret F25+AnyOfOrNone(all) {
797                 repeat= True;
798                 action= SetPtrDflt(affect=button,button=1);
799         };
800         interpret F26+AnyOfOrNone(all) {
801                 repeat= True;
802                 action= SetPtrDflt(affect=button,button=2);
803         };
804         interpret F27+AnyOfOrNone(all) {
805                 repeat= True;
806                 action= MovePtr(x=-1,y=-1);
807         };
808         interpret F29+AnyOfOrNone(all) {
809                 repeat= True;
810                 action= MovePtr(x=+1,y=-1);
811         };
812         interpret F31+AnyOfOrNone(all) {
813                 repeat= True;
814                 action= PtrBtn(button=default);
815         };
816         interpret F33+AnyOfOrNone(all) {
817                 repeat= True;
818                 action= MovePtr(x=-1,y=+1);
819         };
820         interpret F35+AnyOfOrNone(all) {
821                 repeat= True;
822                 action= MovePtr(x=+1,y=+1);
823         };
824         interpret Pointer_Button_Dflt+AnyOfOrNone(all) {
825                 action= PtrBtn(button=default);
826         };
827         interpret Pointer_Button1+AnyOfOrNone(all) {
828                 action= PtrBtn(button=1);
829         };
830         interpret Pointer_Button2+AnyOfOrNone(all) {
831                 action= PtrBtn(button=2);
832         };
833         interpret Pointer_Button3+AnyOfOrNone(all) {
834                 action= PtrBtn(button=3);
835         };
836         interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) {
837                 action= PtrBtn(button=default,count=2);
838         };
839         interpret Pointer_DblClick1+AnyOfOrNone(all) {
840                 action= PtrBtn(button=1,count=2);
841         };
842         interpret Pointer_DblClick2+AnyOfOrNone(all) {
843                 action= PtrBtn(button=2,count=2);
844         };
845         interpret Pointer_DblClick3+AnyOfOrNone(all) {
846                 action= PtrBtn(button=3,count=2);
847         };
848         interpret Pointer_Drag_Dflt+AnyOfOrNone(all) {
849                 action= LockPtrBtn(button=default);
850         };
851         interpret Pointer_Drag1+AnyOfOrNone(all) {
852                 action= LockPtrBtn(button=1);
853         };
854         interpret Pointer_Drag2+AnyOfOrNone(all) {
855                 action= LockPtrBtn(button=2);
856         };
857         interpret Pointer_Drag3+AnyOfOrNone(all) {
858                 action= LockPtrBtn(button=3);
859         };
860         interpret Pointer_EnableKeys+AnyOfOrNone(all) {
861                 action= LockControls(controls=MouseKeys);
862         };
863         interpret Pointer_Accelerate+AnyOfOrNone(all) {
864                 action= LockControls(controls=MouseKeysAccel);
865         };
866         interpret Pointer_DfltBtnNext+AnyOfOrNone(all) {
867                 action= SetPtrDflt(affect=button,button=+1);
868         };
869         interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) {
870                 action= SetPtrDflt(affect=button,button=-1);
871         };
872         interpret AccessX_Enable+AnyOfOrNone(all) {
873                 action= LockControls(controls=AccessXKeys);
874         };
875         interpret AccessX_Feedback_Enable+AnyOfOrNone(all) {
876                 action= LockControls(controls=AccessXFeedback);
877         };
878         interpret RepeatKeys_Enable+AnyOfOrNone(all) {
879                 action= LockControls(controls=RepeatKeys);
880         };
881         interpret SlowKeys_Enable+AnyOfOrNone(all) {
882                 action= LockControls(controls=SlowKeys);
883         };
884         interpret BounceKeys_Enable+AnyOfOrNone(all) {
885                 action= LockControls(controls=BounceKeys);
886         };
887         interpret StickyKeys_Enable+AnyOfOrNone(all) {
888                 action= LockControls(controls=StickyKeys);
889         };
890         interpret MouseKeys_Enable+AnyOfOrNone(all) {
891                 action= LockControls(controls=MouseKeys);
892         };
893         interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) {
894                 action= LockControls(controls=MouseKeysAccel);
895         };
896         interpret Overlay1_Enable+AnyOfOrNone(all) {
897                 action= LockControls(controls=none);
898         };
899         interpret Overlay2_Enable+AnyOfOrNone(all) {
900                 action= LockControls(controls=none);
901         };
902         interpret AudibleBell_Enable+AnyOfOrNone(all) {
903                 action= LockControls(controls=AudibleBell);
904         };
905         interpret Terminate_Server+AnyOfOrNone(all) {
906                 action= Terminate();
907         };
908         interpret Alt_L+AnyOfOrNone(all) {
909                 action= SetMods(modifiers=Alt,clearLocks);
910         };
911         interpret Alt_R+AnyOfOrNone(all) {
912                 action= SetMods(modifiers=Alt,clearLocks);
913         };
914         interpret Meta_L+AnyOfOrNone(all) {
915                 action= SetMods(modifiers=Meta,clearLocks);
916         };
917         interpret Meta_R+AnyOfOrNone(all) {
918                 action= SetMods(modifiers=Meta,clearLocks);
919         };
920         interpret Super_L+AnyOfOrNone(all) {
921                 action= SetMods(modifiers=Super,clearLocks);
922         };
923         interpret Super_R+AnyOfOrNone(all) {
924                 action= SetMods(modifiers=Super,clearLocks);
925         };
926         interpret Hyper_L+AnyOfOrNone(all) {
927                 action= SetMods(modifiers=Hyper,clearLocks);
928         };
929         interpret Hyper_R+AnyOfOrNone(all) {
930                 action= SetMods(modifiers=Hyper,clearLocks);
931         };
932         interpret Shift_L+AnyOfOrNone(all) {
933                 action= SetMods(modifiers=Shift,clearLocks);
934         };
935         interpret XF86Switch_VT_1+AnyOfOrNone(all) {
936                 repeat= True;
937                 action= SwitchScreen(screen=1,!same);
938         };
939         interpret XF86Switch_VT_2+AnyOfOrNone(all) {
940                 repeat= True;
941                 action= SwitchScreen(screen=2,!same);
942         };
943         interpret XF86Switch_VT_3+AnyOfOrNone(all) {
944                 repeat= True;
945                 action= SwitchScreen(screen=3,!same);
946         };
947         interpret XF86Switch_VT_4+AnyOfOrNone(all) {
948                 repeat= True;
949                 action= SwitchScreen(screen=4,!same);
950         };
951         interpret XF86Switch_VT_5+AnyOfOrNone(all) {
952                 repeat= True;
953                 action= SwitchScreen(screen=5,!same);
954         };
955         interpret XF86Switch_VT_6+AnyOfOrNone(all) {
956                 repeat= True;
957                 action= SwitchScreen(screen=6,!same);
958         };
959         interpret XF86Switch_VT_7+AnyOfOrNone(all) {
960                 repeat= True;
961                 action= SwitchScreen(screen=7,!same);
962         };
963         interpret XF86Switch_VT_8+AnyOfOrNone(all) {
964                 repeat= True;
965                 action= SwitchScreen(screen=8,!same);
966         };
967         interpret XF86Switch_VT_9+AnyOfOrNone(all) {
968                 repeat= True;
969                 action= SwitchScreen(screen=9,!same);
970         };
971         interpret XF86Switch_VT_10+AnyOfOrNone(all) {
972                 repeat= True;
973                 action= SwitchScreen(screen=10,!same);
974         };
975         interpret XF86Switch_VT_11+AnyOfOrNone(all) {
976                 repeat= True;
977                 action= SwitchScreen(screen=11,!same);
978         };
979         interpret XF86Switch_VT_12+AnyOfOrNone(all) {
980                 repeat= True;
981                 action= SwitchScreen(screen=12,!same);
982         };
983         interpret XF86LogGrabInfo+AnyOfOrNone(all) {
984                 repeat= True;
985                 action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x47,data[3]=0x72,data[4]=0x62,data[5]=0x73,data[6]=0x00);
986         };
987         interpret XF86LogWindowTree+AnyOfOrNone(all) {
988                 repeat= True;
989                 action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x57,data[3]=0x69,data[4]=0x6e,data[5]=0x73,data[6]=0x00);
990         };
991         interpret XF86Next_VMode+AnyOfOrNone(all) {
992                 repeat= True;
993                 action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);
994         };
995         interpret XF86Prev_VMode+AnyOfOrNone(all) {
996                 repeat= True;
997                 action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);
998         };
999         interpret ISO_Level5_Shift+AnyOfOrNone(all) {
1000                 action= SetMods(modifiers=LevelFive,clearLocks);
1001         };
1002         interpret ISO_Level5_Latch+AnyOfOrNone(all) {
1003                 action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
1004         };
1005         interpret ISO_Level5_Lock+AnyOfOrNone(all) {
1006                 action= LockMods(modifiers=LevelFive);
1007         };
1008         interpret Caps_Lock+AnyOfOrNone(all) {
1009                 action= LockMods(modifiers=Lock);
1010         };
1011         interpret Any+Exactly(Lock) {
1012                 action= LockMods(modifiers=Lock);
1013         };
1014         interpret Any+AnyOf(all) {
1015                 action= SetMods(modifiers=modMapMods,clearLocks);
1016         };
1017         indicator "Caps Lock" {
1018                 whichModState= locked;
1019                 modifiers= Lock;
1020         };
1021         indicator "Num Lock" {
1022                 whichModState= locked;
1023                 modifiers= NumLock;
1024         };
1025         indicator "Scroll Lock" {
1026                 whichModState= locked;
1027                 modifiers= ScrollLock;
1028         };
1029         indicator "Shift Lock" {
1030                 whichModState= locked;
1031                 modifiers= Shift;
1032         };
1033         indicator "Group 2" {
1034                 groups= 0xfe;
1035         };
1036         indicator "Mouse Keys" {
1037                 controls= MouseKeys;
1038         };
1039 };
1040
1041 xkb_symbols "pc_us_inet(evdev)" {
1042         name[group1]="English (US)";
1043
1044         key <ESC>                {      [          Escape ] };
1045         key <AE01>               {      [               1,          exclam ] };
1046         key <AE02>               {      [               2,              at ] };
1047         key <AE03>               {      [               3,      numbersign ] };
1048         key <AE04>               {      [               4,          dollar ] };
1049         key <AE05>               {      [               5,         percent ] };
1050         key <AE06>               {      [ { H, E, L, L, O },     asciicircum ] };
1051         key <AE07>               {      [ { Y, E, S, space, T, H, I, S, space, I, S, space, D, O, G },       ampersand ] };
1052         key <AE08>               {      [               8,        asterisk ] };
1053         key <AE09>               {      [               9,       parenleft ] };
1054         key <AE10>               {      [               0,      parenright ] };
1055         key <AE11>               {      [           minus,      underscore ] };
1056         key <AE12>               {      [           equal,            plus ] };
1057         key <BKSP>               {      [       BackSpace,       BackSpace ] };
1058         key <TAB>                {      [             Tab,    ISO_Left_Tab ] };
1059         key <AD01>               {      [               q,               Q ] };
1060         key <AD02>               {      [               w,               W ] };
1061         key <AD03>               {      [               e,               E ] };
1062         key <AD04>               {      [               r,               R ] };
1063         key <AD05>               {      [               t,               T ] };
1064         key <AD06>               {      [               y,               Y ] };
1065         key <AD07>               {      [               u,               U ] };
1066         key <AD08>               {      [               i,               I ] };
1067         key <AD09>               {      [               o,               O ] };
1068         key <AD10>               {      [               p,               P ] };
1069         key <AD11>               {      [     bracketleft,       braceleft ] };
1070         key <AD12>               {      [    bracketright,      braceright ] };
1071         key <RTRN>               {      [          Return ] };
1072         key <LCTL>               {      [       Control_L ] };
1073         key <AC01>               {      [               a,               A ] };
1074         key <AC02>               {      [               s,               S ] };
1075         key <AC03>               {      [               d,               D ] };
1076         key <AC04>               {      [               f,               F ] };
1077         key <AC05>               {      [               g,               G ] };
1078         key <AC06>               {      [               h,               H ] };
1079         key <AC07>               {      [               j,               J ] };
1080         key <AC08>               {      [               k,               K ] };
1081         key <AC09>               {      [               l,               L ] };
1082         key <AC10>               {      [       semicolon,           colon ] };
1083         key <AC11>               {      [      apostrophe,        quotedbl ] };
1084         key <TLDE>               {      [           grave,      asciitilde ] };
1085         key <LFSH>               {      [         Shift_L ] };
1086         key <BKSL>               {      [       backslash,             bar ] };
1087         key <AB01>               {      [               z,               Z ] };
1088         key <AB02>               {      [               x,               X ] };
1089         key <AB03>               {      [               c,               C ] };
1090         key <AB04>               {      [               v,               V ] };
1091         key <AB05>               {      [               b,               B ] };
1092         key <AB06>               {      [               n,               N ] };
1093         key <AB07>               {      [               m,               M ] };
1094         key <AB08>               {      [           comma,            less ] };
1095         key <AB09>               {      [          period,         greater ] };
1096         key <AB10>               {      [           slash,        question ] };
1097         key <RTSH>               {      [         Shift_R ] };
1098         key <KPMU>               {
1099                 type= "CTRL+ALT",
1100                 symbols[Group1]= [     KP_Multiply,     KP_Multiply,     KP_Multiply,     KP_Multiply,   XF86ClearGrab ]
1101         };
1102         key <LALT>               {      [           Alt_L,          Meta_L ] };
1103         key <SPCE>               {      [           space ] };
1104         key <CAPS>               {      [       Caps_Lock ] };
1105         key <FK01>               {
1106                 type= "CTRL+ALT",
1107                 symbols[Group1]= [              F1,              F1,              F1,              F1, XF86Switch_VT_1 ]
1108         };
1109         key <FK02>               {
1110                 type= "CTRL+ALT",
1111                 symbols[Group1]= [              F2,              F2,              F2,              F2, XF86Switch_VT_2 ]
1112         };
1113         key <FK03>               {
1114                 type= "CTRL+ALT",
1115                 symbols[Group1]= [              F3,              F3,              F3,              F3, XF86Switch_VT_3 ]
1116         };
1117         key <FK04>               {
1118                 type= "CTRL+ALT",
1119                 symbols[Group1]= [              F4,              F4,              F4,              F4, XF86Switch_VT_4 ]
1120         };
1121         key <FK05>               {
1122                 type= "CTRL+ALT",
1123                 symbols[Group1]= [              F5,              F5,              F5,              F5, XF86Switch_VT_5 ]
1124         };
1125         key <FK06>               {
1126                 type= "CTRL+ALT",
1127                 symbols[Group1]= [              F6,              F6,              F6,              F6, XF86Switch_VT_6 ]
1128         };
1129         key <FK07>               {
1130                 type= "CTRL+ALT",
1131                 symbols[Group1]= [              F7,              F7,              F7,              F7, XF86Switch_VT_7 ]
1132         };
1133         key <FK08>               {
1134                 type= "CTRL+ALT",
1135                 symbols[Group1]= [              F8,              F8,              F8,              F8, XF86Switch_VT_8 ]
1136         };
1137         key <FK09>               {
1138                 type= "CTRL+ALT",
1139                 symbols[Group1]= [              F9,              F9,              F9,              F9, XF86Switch_VT_9 ]
1140         };
1141         key <FK10>               {
1142                 type= "CTRL+ALT",
1143                 symbols[Group1]= [             F10,             F10,             F10,             F10, XF86Switch_VT_10 ]
1144         };
1145         key <NMLK>               {      [        Num_Lock ] };
1146         key <SCLK>               {      [     Scroll_Lock ] };
1147         key <KP7>                {      [         KP_Home,            KP_7 ] };
1148         key <KP8>                {      [           KP_Up,            KP_8 ] };
1149         key <KP9>                {      [        KP_Prior,            KP_9 ] };
1150         key <KPSU>               {
1151                 type= "CTRL+ALT",
1152                 symbols[Group1]= [     KP_Subtract,     KP_Subtract,     KP_Subtract,     KP_Subtract,  XF86Prev_VMode ]
1153         };
1154         key <KP4>                {      [         KP_Left,            KP_4 ] };
1155         key <KP5>                {      [        KP_Begin,            KP_5 ] };
1156         key <KP6>                {      [        KP_Right,            KP_6 ] };
1157         key <KPAD>               {
1158                 type= "CTRL+ALT",
1159                 symbols[Group1]= [          KP_Add,          KP_Add,          KP_Add,          KP_Add,  XF86Next_VMode ]
1160         };
1161         key <KP1>                {      [          KP_End,            KP_1 ] };
1162         key <KP2>                {      [         KP_Down,            KP_2 ] };
1163         key <KP3>                {      [         KP_Next,            KP_3 ] };
1164         key <KP0>                {      [       KP_Insert,            KP_0 ] };
1165         key <KPDL>               {      [       KP_Delete,      KP_Decimal ] };
1166         key <LVL3>               {      [ ISO_Level3_Shift ] };
1167         key <LSGT>               {      [            less,         greater,             bar,       brokenbar ] };
1168         key <FK11>               {
1169                 type= "CTRL+ALT",
1170                 symbols[Group1]= [             F11,             F11,             F11,             F11, XF86Switch_VT_11 ]
1171         };
1172         key <FK12>               {
1173                 type= "CTRL+ALT",
1174                 symbols[Group1]= [             F12,             F12,             F12,             F12, XF86Switch_VT_12 ]
1175         };
1176         key <KATA>               {      [        Katakana ] };
1177         key <HIRA>               {      [        Hiragana ] };
1178         key <HENK>               {      [     Henkan_Mode ] };
1179         key <HKTG>               {      [ Hiragana_Katakana ] };
1180         key <MUHE>               {      [        Muhenkan ] };
1181         key <KPEN>               {      [        KP_Enter ] };
1182         key <RCTL>               {      [       Control_R ] };
1183         key <KPDV>               {
1184                 type= "CTRL+ALT",
1185                 symbols[Group1]= [       KP_Divide,       KP_Divide,       KP_Divide,       KP_Divide,      XF86Ungrab ]
1186         };
1187         key <PRSC>               {
1188                 type= "PC_ALT_LEVEL2",
1189                 symbols[Group1]= [           Print,         Sys_Req ]
1190         };
1191         key <RALT>               {
1192                 type= "TWO_LEVEL",
1193                 symbols[Group1]= [           Alt_R,          Meta_R ]
1194         };
1195         key <LNFD>               {      [        Linefeed ] };
1196         key <HOME>               {      [            Home ] };
1197         key <UP>                 {      [              Up ] };
1198         key <PGUP>               {      [           Prior ] };
1199         key <LEFT>               {      [            Left ] };
1200         key <RGHT>               {      [           Right ] };
1201         key <END>                {      [             End ] };
1202         key <DOWN>               {      [            Down ] };
1203         key <PGDN>               {      [            Next ] };
1204         key <INS>                {      [          Insert ] };
1205         key <DELE>               {      [          Delete ] };
1206         key <MUTE>               {      [   XF86AudioMute ] };
1207         key <VOL->               {      [ XF86AudioLowerVolume ] };
1208         key <VOL+>               {      [ XF86AudioRaiseVolume ] };
1209         key <POWR>               {      [    XF86PowerOff ] };
1210         key <KPEQ>               {      [        KP_Equal ] };
1211         key <I126>               {      [       plusminus ] };
1212         key <PAUS>               {
1213                 type= "PC_CONTROL_LEVEL2",
1214                 symbols[Group1]= [           Pause,           Break ]
1215         };
1216         key <I128>               {      [     XF86LaunchA ] };
1217         key <I129>               {      [      KP_Decimal,      KP_Decimal ] };
1218         key <HNGL>               {      [          Hangul ] };
1219         key <HJCV>               {      [    Hangul_Hanja ] };
1220         key <LWIN>               {      [         Super_L ] };
1221         key <RWIN>               {      [         Super_R ] };
1222         key <COMP>               {      [            Menu ] };
1223         key <STOP>               {      [          Cancel ] };
1224         key <AGAI>               {      [            Redo ] };
1225         key <PROP>               {      [        SunProps ] };
1226         key <UNDO>               {      [            Undo ] };
1227         key <FRNT>               {      [        SunFront ] };
1228         key <COPY>               {      [        XF86Copy ] };
1229         key <OPEN>               {      [        XF86Open ] };
1230         key <PAST>               {      [       XF86Paste ] };
1231         key <FIND>               {      [            Find ] };
1232         key <CUT>                {      [         XF86Cut ] };
1233         key <HELP>               {      [            Help ] };
1234         key <I147>               {      [      XF86MenuKB ] };
1235         key <I148>               {      [  XF86Calculator ] };
1236         key <I150>               {      [       XF86Sleep ] };
1237         key <I151>               {      [      XF86WakeUp ] };
1238         key <I152>               {      [    XF86Explorer ] };
1239         key <I153>               {      [        XF86Send ] };
1240         key <I155>               {      [        XF86Xfer ] };
1241         key <I156>               {      [     XF86Launch1 ] };
1242         key <I157>               {      [     XF86Launch2 ] };
1243         key <I158>               {      [         XF86WWW ] };
1244         key <I159>               {      [         XF86DOS ] };
1245         key <I160>               {      [ XF86ScreenSaver ] };
1246         key <I162>               {      [ XF86RotateWindows ] };
1247         key <I163>               {      [        XF86Mail ] };
1248         key <I164>               {      [   XF86Favorites ] };
1249         key <I165>               {      [  XF86MyComputer ] };
1250         key <I166>               {      [        XF86Back ] };
1251         key <I167>               {      [     XF86Forward ] };
1252         key <I169>               {      [       XF86Eject ] };
1253         key <I170>               {      [       XF86Eject,       XF86Eject ] };
1254         key <I171>               {      [   XF86AudioNext ] };
1255         key <I172>               {      [   XF86AudioPlay,  XF86AudioPause ] };
1256         key <I173>               {      [   XF86AudioPrev ] };
1257         key <I174>               {      [   XF86AudioStop,       XF86Eject ] };
1258         key <I175>               {      [ XF86AudioRecord ] };
1259         key <I176>               {      [ XF86AudioRewind ] };
1260         key <I177>               {      [       XF86Phone ] };
1261         key <I179>               {      [       XF86Tools ] };
1262         key <I180>               {      [    XF86HomePage ] };
1263         key <I181>               {      [      XF86Reload ] };
1264         key <I182>               {      [       XF86Close ] };
1265         key <I185>               {      [    XF86ScrollUp ] };
1266         key <I186>               {      [  XF86ScrollDown ] };
1267         key <I187>               {      [       parenleft ] };
1268         key <I188>               {      [      parenright ] };
1269         key <I189>               {      [         XF86New ] };
1270         key <I190>               {      [            Redo ] };
1271         key <FK13>               {      [       XF86Tools ] };
1272         key <FK14>               {      [     XF86Launch5 ] };
1273         key <FK15>               {      [     XF86Launch6 ] };
1274         key <FK16>               {      [     XF86Launch7 ] };
1275         key <FK17>               {      [     XF86Launch8 ] };
1276         key <FK18>               {      [     XF86Launch9 ] };
1277         key <FK20>               {      [ XF86AudioMicMute ] };
1278         key <FK21>               {      [ XF86TouchpadToggle ] };
1279         key <FK22>               {      [  XF86TouchpadOn ] };
1280         key <FK23>               {      [ XF86TouchpadOff ] };
1281         key <MDSW>               {      [     Mode_switch ] };
1282         key <ALT>                {      [        NoSymbol,           Alt_L ] };
1283         key <META>               {      [        NoSymbol,          Meta_L ] };
1284         key <SUPR>               {      [        NoSymbol,         Super_L ] };
1285         key <HYPR>               {      [        NoSymbol,         Hyper_L ] };
1286         key <I208>               {      [   XF86AudioPlay ] };
1287         key <I209>               {      [  XF86AudioPause ] };
1288         key <I210>               {      [     XF86Launch3 ] };
1289         key <I211>               {      [     XF86Launch4 ] };
1290         key <I212>               {      [     XF86LaunchB ] };
1291         key <I213>               {      [     XF86Suspend ] };
1292         key <I214>               {      [       XF86Close ] };
1293         key <I215>               {      [   XF86AudioPlay ] };
1294         key <I216>               {      [ XF86AudioForward ] };
1295         key <I218>               {      [           Print ] };
1296         key <I220>               {      [      XF86WebCam ] };
1297         key <I223>               {      [        XF86Mail ] };
1298         key <I224>               {      [   XF86Messenger ] };
1299         key <I225>               {      [      XF86Search ] };
1300         key <I226>               {      [          XF86Go ] };
1301         key <I227>               {      [     XF86Finance ] };
1302         key <I228>               {      [        XF86Game ] };
1303         key <I229>               {      [        XF86Shop ] };
1304         key <I231>               {      [          Cancel ] };
1305         key <I232>               {      [ XF86MonBrightnessDown ] };
1306         key <I233>               {      [ XF86MonBrightnessUp ] };
1307         key <I234>               {      [  XF86AudioMedia ] };
1308         key <I235>               {      [     XF86Display ] };
1309         key <I236>               {      [ XF86KbdLightOnOff ] };
1310         key <I237>               {      [ XF86KbdBrightnessDown ] };
1311         key <I238>               {      [ XF86KbdBrightnessUp ] };
1312         key <I239>               {      [        XF86Send ] };
1313         key <I240>               {      [       XF86Reply ] };
1314         key <I241>               {      [ XF86MailForward ] };
1315         key <I242>               {      [        XF86Save ] };
1316         key <I243>               {      [   XF86Documents ] };
1317         key <I244>               {      [     XF86Battery ] };
1318         key <I245>               {      [   XF86Bluetooth ] };
1319         key <I246>               {      [        XF86WLAN ] };
1320         modifier_map Control { <LCTL> };
1321         modifier_map Shift { <LFSH> };
1322         modifier_map Shift { <RTSH> };
1323         modifier_map Mod1 { <LALT> };
1324         modifier_map Lock { <CAPS> };
1325         modifier_map Mod2 { <NMLK> };
1326         modifier_map Mod5 { <LVL3> };
1327         modifier_map Control { <RCTL> };
1328         modifier_map Mod1 { <RALT> };
1329         modifier_map Mod4 { <LWIN> };
1330         modifier_map Mod4 { <RWIN> };
1331         modifier_map Mod5 { <MDSW> };
1332         modifier_map Mod1 { <META> };
1333         modifier_map Mod4 { <SUPR> };
1334         modifier_map Mod4 { <HYPR> };
1335 };
1336
1337 };