Fix issues detected by static analysis tool
[platform/upstream/libxkbcommon.git] / test / data / keymaps / unbound-vmod.xkb
1 xkb_keymap {
2 xkb_keycodes "evdev+aliases(qwertz)" {
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     virtual indicator 12 = "Shift Lock";
261     virtual indicator 13 = "Group 2";
262     virtual indicator 14 = "Mouse Keys";
263     alias <AC12> = <BKSL>;
264     alias <MENU> = <COMP>;
265     alias <HZTG> = <TLDE>;
266     alias <LMTA> = <LWIN>;
267     alias <RMTA> = <RWIN>;
268     alias <ALGR> = <RALT>;
269     alias <KPPT> = <I129>;
270     alias <LatQ> = <AD01>;
271     alias <LatW> = <AD02>;
272     alias <LatE> = <AD03>;
273     alias <LatR> = <AD04>;
274     alias <LatT> = <AD05>;
275     alias <LatZ> = <AD06>;
276     alias <LatU> = <AD07>;
277     alias <LatI> = <AD08>;
278     alias <LatO> = <AD09>;
279     alias <LatP> = <AD10>;
280     alias <LatA> = <AC01>;
281     alias <LatS> = <AC02>;
282     alias <LatD> = <AC03>;
283     alias <LatF> = <AC04>;
284     alias <LatG> = <AC05>;
285     alias <LatH> = <AC06>;
286     alias <LatJ> = <AC07>;
287     alias <LatK> = <AC08>;
288     alias <LatL> = <AC09>;
289     alias <LatY> = <AB01>;
290     alias <LatX> = <AB02>;
291     alias <LatC> = <AB03>;
292     alias <LatV> = <AB04>;
293     alias <LatB> = <AB05>;
294     alias <LatN> = <AB06>;
295     alias <LatM> = <AB07>;
296 };
297
298 xkb_types "complete" {
299
300     virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
301
302     type "ONE_LEVEL" {
303         modifiers= none;
304         level_name[Level1]= "Any";
305     };
306     type "TWO_LEVEL" {
307         modifiers= Shift;
308         map[Shift]= Level2;
309         level_name[Level1]= "Base";
310         level_name[Level2]= "Shift";
311     };
312     type "ALPHABETIC" {
313         modifiers= Shift+Lock;
314         map[Shift]= Level2;
315         map[Lock]= Level2;
316         level_name[Level1]= "Base";
317         level_name[Level2]= "Caps";
318     };
319     type "KEYPAD" {
320         modifiers= Shift+NumLock;
321         map[Shift]= Level2;
322         map[NumLock]= Level2;
323         level_name[Level1]= "Base";
324         level_name[Level2]= "Number";
325     };
326     type "SHIFT+ALT" {
327         modifiers= Shift+Alt;
328         map[Shift+Alt]= Level2;
329         level_name[Level1]= "Base";
330         level_name[Level2]= "Shift+Alt";
331     };
332     type "PC_CONTROL_LEVEL2" {
333         modifiers= Control;
334         map[Control]= Level2;
335         level_name[Level1]= "Base";
336         level_name[Level2]= "Control";
337     };
338     type "PC_LCONTROL_LEVEL2" {
339         modifiers= LControl;
340         map[LControl]= Level2;
341         level_name[Level1]= "Base";
342         level_name[Level2]= "LControl";
343     };
344     type "PC_RCONTROL_LEVEL2" {
345         modifiers= RControl;
346         map[RControl]= Level2;
347         level_name[Level1]= "Base";
348         level_name[Level2]= "RControl";
349     };
350     type "PC_ALT_LEVEL2" {
351         modifiers= Alt;
352         map[Alt]= Level2;
353         level_name[Level1]= "Base";
354         level_name[Level2]= "Alt";
355     };
356     type "PC_LALT_LEVEL2" {
357         modifiers= LAlt;
358         map[LAlt]= Level2;
359         level_name[Level1]= "Base";
360         level_name[Level2]= "LAlt";
361     };
362     type "PC_RALT_LEVEL2" {
363         modifiers= RAlt;
364         map[RAlt]= Level2;
365         level_name[Level1]= "Base";
366         level_name[Level2]= "RAlt";
367     };
368     type "CTRL+ALT" {
369         modifiers= Shift+Control+Alt+LevelThree;
370         map[Shift]= Level2;
371         preserve[Shift]= Shift;
372         map[LevelThree]= Level3;
373         map[Shift+LevelThree]= Level4;
374         preserve[Shift+LevelThree]= Shift;
375         map[Control+Alt]= Level5;
376         level_name[Level1]= "Base";
377         level_name[Level2]= "Shift";
378         level_name[Level3]= "Alt Base";
379         level_name[Level4]= "Shift Alt";
380         level_name[Level5]= "Ctrl+Alt";
381     };
382     type "LOCAL_EIGHT_LEVEL" {
383         modifiers= Shift+Lock+Control+LevelThree;
384         map[Shift+Lock]= Level1;
385         map[Shift]= Level2;
386         map[Lock]= Level2;
387         map[LevelThree]= Level3;
388         map[Shift+Lock+LevelThree]= Level3;
389         map[Shift+LevelThree]= Level4;
390         map[Lock+LevelThree]= Level4;
391         map[Control]= Level5;
392         map[Shift+Lock+Control]= Level5;
393         map[Shift+Control]= Level6;
394         map[Lock+Control]= Level6;
395         map[Control+LevelThree]= Level7;
396         map[Shift+Lock+Control+LevelThree]= Level7;
397         map[Shift+Control+LevelThree]= Level8;
398         map[Lock+Control+LevelThree]= Level8;
399         level_name[Level1]= "Base";
400         level_name[Level2]= "Shift";
401         level_name[Level3]= "Level3";
402         level_name[Level4]= "Shift Level3";
403         level_name[Level5]= "Ctrl";
404         level_name[Level6]= "Shift Ctrl";
405         level_name[Level7]= "Level3 Ctrl";
406         level_name[Level8]= "Shift Level3 Ctrl";
407     };
408     type "THREE_LEVEL" {
409         modifiers= Shift+LevelThree;
410         map[Shift]= Level2;
411         map[LevelThree]= Level3;
412         map[Shift+LevelThree]= Level3;
413         level_name[Level1]= "Base";
414         level_name[Level2]= "Shift";
415         level_name[Level3]= "Level3";
416     };
417     type "EIGHT_LEVEL" {
418         modifiers= Shift+LevelThree+LevelFive;
419         map[Shift]= Level2;
420         map[LevelThree]= Level3;
421         map[Shift+LevelThree]= Level4;
422         map[LevelFive]= Level5;
423         map[Shift+LevelFive]= Level6;
424         map[LevelThree+LevelFive]= Level7;
425         map[Shift+LevelThree+LevelFive]= Level8;
426         level_name[Level1]= "Base";
427         level_name[Level2]= "Shift";
428         level_name[Level3]= "Alt Base";
429         level_name[Level4]= "Shift Alt";
430         level_name[Level5]= "X";
431         level_name[Level6]= "X Shift";
432         level_name[Level7]= "X Alt Base";
433         level_name[Level8]= "X Shift Alt";
434     };
435     type "EIGHT_LEVEL_ALPHABETIC" {
436         modifiers= Shift+Lock+LevelThree+LevelFive;
437         map[Shift]= Level2;
438         map[Lock]= Level2;
439         map[LevelThree]= Level3;
440         map[Shift+LevelThree]= Level4;
441         map[Lock+LevelThree]= Level4;
442         map[Shift+Lock+LevelThree]= Level3;
443         map[LevelFive]= Level5;
444         map[Shift+LevelFive]= Level6;
445         map[Lock+LevelFive]= Level6;
446         map[LevelThree+LevelFive]= Level7;
447         map[Shift+LevelThree+LevelFive]= Level8;
448         map[Lock+LevelThree+LevelFive]= Level8;
449         map[Shift+Lock+LevelThree+LevelFive]= Level7;
450         level_name[Level1]= "Base";
451         level_name[Level2]= "Shift";
452         level_name[Level3]= "Alt Base";
453         level_name[Level4]= "Shift Alt";
454         level_name[Level5]= "X";
455         level_name[Level6]= "X Shift";
456         level_name[Level7]= "X Alt Base";
457         level_name[Level8]= "X Shift Alt";
458     };
459     type "EIGHT_LEVEL_SEMIALPHABETIC" {
460         modifiers= Shift+Lock+LevelThree+LevelFive;
461         map[Shift]= Level2;
462         map[Lock]= Level2;
463         map[LevelThree]= Level3;
464         map[Shift+LevelThree]= Level4;
465         map[Lock+LevelThree]= Level3;
466         preserve[Lock+LevelThree]= Lock;
467         map[Shift+Lock+LevelThree]= Level4;
468         preserve[Shift+Lock+LevelThree]= Lock;
469         map[LevelFive]= Level5;
470         map[Shift+LevelFive]= Level6;
471         map[Lock+LevelFive]= Level6;
472         preserve[Lock+LevelFive]= Lock;
473         map[Shift+Lock+LevelFive]= Level6;
474         preserve[Shift+Lock+LevelFive]= Lock;
475         map[LevelThree+LevelFive]= Level7;
476         map[Shift+LevelThree+LevelFive]= Level8;
477         map[Lock+LevelThree+LevelFive]= Level7;
478         preserve[Lock+LevelThree+LevelFive]= Lock;
479         map[Shift+Lock+LevelThree+LevelFive]= Level8;
480         preserve[Shift+Lock+LevelThree+LevelFive]= Lock;
481         level_name[Level1]= "Base";
482         level_name[Level2]= "Shift";
483         level_name[Level3]= "Alt Base";
484         level_name[Level4]= "Shift Alt";
485         level_name[Level5]= "X";
486         level_name[Level6]= "X Shift";
487         level_name[Level7]= "X Alt Base";
488         level_name[Level8]= "X Shift Alt";
489     };
490     type "FOUR_LEVEL" {
491         modifiers= Shift+LevelThree;
492         map[Shift]= Level2;
493         map[LevelThree]= Level3;
494         map[Shift+LevelThree]= Level4;
495         level_name[Level1]= "Base";
496         level_name[Level2]= "Shift";
497         level_name[Level3]= "Alt Base";
498         level_name[Level4]= "Shift Alt";
499     };
500     type "FOUR_LEVEL_ALPHABETIC" {
501         modifiers= Shift+Lock+LevelThree;
502         map[Shift]= Level2;
503         map[Lock]= Level2;
504         map[LevelThree]= Level3;
505         map[Shift+LevelThree]= Level4;
506         map[Lock+LevelThree]= Level4;
507         map[Shift+Lock+LevelThree]= Level3;
508         level_name[Level1]= "Base";
509         level_name[Level2]= "Shift";
510         level_name[Level3]= "Alt Base";
511         level_name[Level4]= "Shift Alt";
512     };
513     type "FOUR_LEVEL_SEMIALPHABETIC" {
514         modifiers= Shift+Lock+LevelThree;
515         map[Shift]= Level2;
516         map[Lock]= Level2;
517         map[LevelThree]= Level3;
518         map[Shift+LevelThree]= Level4;
519         map[Lock+LevelThree]= Level3;
520         preserve[Lock+LevelThree]= Lock;
521         map[Shift+Lock+LevelThree]= Level4;
522         preserve[Shift+Lock+LevelThree]= Lock;
523         level_name[Level1]= "Base";
524         level_name[Level2]= "Shift";
525         level_name[Level3]= "Alt Base";
526         level_name[Level4]= "Shift Alt";
527     };
528     type "FOUR_LEVEL_MIXED_KEYPAD" {
529         modifiers= Shift+NumLock+LevelThree;
530         map[Shift+NumLock]= Level1;
531         map[NumLock]= Level2;
532         map[Shift]= Level2;
533         map[LevelThree]= Level3;
534         map[NumLock+LevelThree]= Level3;
535         map[Shift+LevelThree]= Level4;
536         map[Shift+NumLock+LevelThree]= Level4;
537         level_name[Level1]= "Base";
538         level_name[Level2]= "Number";
539         level_name[Level3]= "Alt Base";
540         level_name[Level4]= "Shift Alt";
541     };
542     type "FOUR_LEVEL_X" {
543         modifiers= Shift+Control+Alt+LevelThree;
544         map[LevelThree]= Level2;
545         map[Shift+LevelThree]= Level3;
546         map[Control+Alt]= Level4;
547         level_name[Level1]= "Base";
548         level_name[Level2]= "Alt Base";
549         level_name[Level3]= "Shift Alt";
550         level_name[Level4]= "Ctrl+Alt";
551     };
552     type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" {
553         modifiers= Shift+Lock+LevelThree;
554         map[Shift]= Level2;
555         map[Lock]= Level4;
556         preserve[Lock]= Lock;
557         map[LevelThree]= Level3;
558         map[Shift+LevelThree]= Level4;
559         map[Lock+LevelThree]= Level3;
560         preserve[Lock+LevelThree]= Lock;
561         map[Shift+Lock+LevelThree]= Level3;
562         level_name[Level1]= "Base";
563         level_name[Level2]= "Shift";
564         level_name[Level3]= "AltGr Base";
565         level_name[Level4]= "Shift AltGr";
566     };
567     type "FOUR_LEVEL_PLUS_LOCK" {
568         modifiers= Shift+Lock+LevelThree;
569         map[Shift]= Level2;
570         map[LevelThree]= Level3;
571         map[Shift+LevelThree]= Level4;
572         map[Lock]= Level5;
573         map[Shift+Lock]= Level2;
574         map[Lock+LevelThree]= Level3;
575         map[Shift+Lock+LevelThree]= Level4;
576         level_name[Level1]= "Base";
577         level_name[Level2]= "Shift";
578         level_name[Level3]= "Alt Base";
579         level_name[Level4]= "Shift Alt";
580         level_name[Level5]= "Lock";
581     };
582     type "FOUR_LEVEL_KEYPAD" {
583         modifiers= Shift+NumLock+LevelThree;
584         map[Shift]= Level2;
585         map[NumLock]= Level2;
586         map[LevelThree]= Level3;
587         map[Shift+LevelThree]= Level4;
588         map[NumLock+LevelThree]= Level4;
589         map[Shift+NumLock+LevelThree]= Level3;
590         level_name[Level1]= "Base";
591         level_name[Level2]= "Number";
592         level_name[Level3]= "Alt Base";
593         level_name[Level4]= "Alt Number";
594     };
595 };
596
597 xkb_compatibility "complete" {
598
599     virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
600
601     interpret.useModMapMods= AnyLevel;
602     interpret.repeat= False;
603     interpret.locking= False;
604     interpret ISO_Level2_Latch+Exactly(Shift) {
605         useModMapMods=level1;
606         action= LatchMods(modifiers=Shift,clearLocks,latchToLock);
607     };
608     interpret Shift_Lock+AnyOf(Shift+Lock) {
609         action= LockMods(modifiers=Shift);
610     };
611     interpret Num_Lock+AnyOf(all) {
612         virtualModifier= NumLock;
613         action= LockMods(modifiers=NumLock);
614     };
615     interpret ISO_Level3_Shift+AnyOf(all) {
616         virtualModifier= LevelThree;
617         useModMapMods=level1;
618         action= SetMods(modifiers=LevelThree,clearLocks);
619     };
620     interpret ISO_Level3_Latch+AnyOf(all) {
621         virtualModifier= LevelThree;
622         useModMapMods=level1;
623         action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
624     };
625     interpret ISO_Level3_Lock+AnyOf(all) {
626         virtualModifier= LevelThree;
627         useModMapMods=level1;
628         action= LockMods(modifiers=LevelThree);
629     };
630     interpret Alt_L+AnyOf(all) {
631         virtualModifier= Alt;
632         action= SetMods(modifiers=modMapMods,clearLocks);
633     };
634     interpret Alt_R+AnyOf(all) {
635         virtualModifier= Alt;
636         action= SetMods(modifiers=modMapMods,clearLocks);
637     };
638     interpret Meta_L+AnyOf(all) {
639         virtualModifier= Meta;
640         action= SetMods(modifiers=modMapMods,clearLocks);
641     };
642     interpret Meta_R+AnyOf(all) {
643         virtualModifier= Meta;
644         action= SetMods(modifiers=modMapMods,clearLocks);
645     };
646     interpret Super_L+AnyOf(all) {
647         virtualModifier= Super;
648         action= SetMods(modifiers=modMapMods,clearLocks);
649     };
650     interpret Super_R+AnyOf(all) {
651         virtualModifier= Super;
652         action= SetMods(modifiers=modMapMods,clearLocks);
653     };
654     interpret Hyper_L+AnyOf(all) {
655         virtualModifier= Hyper;
656         action= SetMods(modifiers=modMapMods,clearLocks);
657     };
658     interpret Hyper_R+AnyOf(all) {
659         virtualModifier= Hyper;
660         action= SetMods(modifiers=modMapMods,clearLocks);
661     };
662     interpret Scroll_Lock+AnyOf(all) {
663         virtualModifier= ScrollLock;
664         action= LockMods(modifiers=modMapMods);
665     };
666     interpret ISO_Level5_Shift+AnyOf(all) {
667         virtualModifier= LevelFive;
668         useModMapMods=level1;
669         action= SetMods(modifiers=LevelFive,clearLocks);
670     };
671     interpret ISO_Level5_Latch+AnyOf(all) {
672         virtualModifier= LevelFive;
673         action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
674     };
675     interpret ISO_Level5_Lock+AnyOf(all) {
676         virtualModifier= LevelFive;
677         action= LockMods(modifiers=LevelFive);
678     };
679     interpret Mode_switch+AnyOfOrNone(all) {
680         virtualModifier= AltGr;
681         useModMapMods=level1;
682         action= SetGroup(group=+1);
683     };
684     interpret ISO_Level3_Shift+AnyOfOrNone(all) {
685         action= SetMods(modifiers=LevelThree,clearLocks);
686     };
687     interpret ISO_Level3_Latch+AnyOfOrNone(all) {
688         action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
689     };
690     interpret ISO_Level3_Lock+AnyOfOrNone(all) {
691         action= LockMods(modifiers=LevelThree);
692     };
693     interpret ISO_Group_Latch+AnyOfOrNone(all) {
694         virtualModifier= AltGr;
695         useModMapMods=level1;
696         action= LatchGroup(group=2);
697     };
698     interpret ISO_Next_Group+AnyOfOrNone(all) {
699         virtualModifier= AltGr;
700         useModMapMods=level1;
701         action= LockGroup(group=+1);
702     };
703     interpret ISO_Prev_Group+AnyOfOrNone(all) {
704         virtualModifier= AltGr;
705         useModMapMods=level1;
706         action= LockGroup(group=-1);
707     };
708     interpret ISO_First_Group+AnyOfOrNone(all) {
709         action= LockGroup(group=1);
710     };
711     interpret ISO_Last_Group+AnyOfOrNone(all) {
712         action= LockGroup(group=2);
713     };
714     interpret KP_1+AnyOfOrNone(all) {
715         repeat= True;
716         action= MovePtr(x=-1,y=+1);
717     };
718     interpret KP_End+AnyOfOrNone(all) {
719         repeat= True;
720         action= MovePtr(x=-1,y=+1);
721     };
722     interpret KP_2+AnyOfOrNone(all) {
723         repeat= True;
724         action= MovePtr(x=+0,y=+1);
725     };
726     interpret KP_Down+AnyOfOrNone(all) {
727         repeat= True;
728         action= MovePtr(x=+0,y=+1);
729     };
730     interpret KP_3+AnyOfOrNone(all) {
731         repeat= True;
732         action= MovePtr(x=+1,y=+1);
733     };
734     interpret KP_Next+AnyOfOrNone(all) {
735         repeat= True;
736         action= MovePtr(x=+1,y=+1);
737     };
738     interpret KP_4+AnyOfOrNone(all) {
739         repeat= True;
740         action= MovePtr(x=-1,y=+0);
741     };
742     interpret KP_Left+AnyOfOrNone(all) {
743         repeat= True;
744         action= MovePtr(x=-1,y=+0);
745     };
746     interpret KP_6+AnyOfOrNone(all) {
747         repeat= True;
748         action= MovePtr(x=+1,y=+0);
749     };
750     interpret KP_Right+AnyOfOrNone(all) {
751         repeat= True;
752         action= MovePtr(x=+1,y=+0);
753     };
754     interpret KP_7+AnyOfOrNone(all) {
755         repeat= True;
756         action= MovePtr(x=-1,y=-1);
757     };
758     interpret KP_Home+AnyOfOrNone(all) {
759         repeat= True;
760         action= MovePtr(x=-1,y=-1);
761     };
762     interpret KP_8+AnyOfOrNone(all) {
763         repeat= True;
764         action= MovePtr(x=+0,y=-1);
765     };
766     interpret KP_Up+AnyOfOrNone(all) {
767         repeat= True;
768         action= MovePtr(x=+0,y=-1);
769     };
770     interpret KP_9+AnyOfOrNone(all) {
771         repeat= True;
772         action= MovePtr(x=+1,y=-1);
773     };
774     interpret KP_Prior+AnyOfOrNone(all) {
775         repeat= True;
776         action= MovePtr(x=+1,y=-1);
777     };
778     interpret KP_5+AnyOfOrNone(all) {
779         repeat= True;
780         action= PtrBtn(button=default);
781     };
782     interpret KP_Begin+AnyOfOrNone(all) {
783         repeat= True;
784         action= PtrBtn(button=default);
785     };
786     interpret KP_F2+AnyOfOrNone(all) {
787         repeat= True;
788         action= SetPtrDflt(affect=button,button=1);
789     };
790     interpret KP_Divide+AnyOfOrNone(all) {
791         repeat= True;
792         action= SetPtrDflt(affect=button,button=1);
793     };
794     interpret KP_F3+AnyOfOrNone(all) {
795         repeat= True;
796         action= SetPtrDflt(affect=button,button=2);
797     };
798     interpret KP_Multiply+AnyOfOrNone(all) {
799         repeat= True;
800         action= SetPtrDflt(affect=button,button=2);
801     };
802     interpret KP_F4+AnyOfOrNone(all) {
803         repeat= True;
804         action= SetPtrDflt(affect=button,button=3);
805     };
806     interpret KP_Subtract+AnyOfOrNone(all) {
807         repeat= True;
808         action= SetPtrDflt(affect=button,button=3);
809     };
810     interpret KP_Separator+AnyOfOrNone(all) {
811         repeat= True;
812         action= PtrBtn(button=default,count=2);
813     };
814     interpret KP_Add+AnyOfOrNone(all) {
815         repeat= True;
816         action= PtrBtn(button=default,count=2);
817     };
818     interpret KP_0+AnyOfOrNone(all) {
819         repeat= True;
820         action= LockPtrBtn(button=default,affect=lock);
821     };
822     interpret KP_Insert+AnyOfOrNone(all) {
823         repeat= True;
824         action= LockPtrBtn(button=default,affect=lock);
825     };
826     interpret KP_Decimal+AnyOfOrNone(all) {
827         repeat= True;
828         action= LockPtrBtn(button=default,affect=unlock);
829     };
830     interpret KP_Delete+AnyOfOrNone(all) {
831         repeat= True;
832         action= LockPtrBtn(button=default,affect=unlock);
833     };
834     interpret F25+AnyOfOrNone(all) {
835         repeat= True;
836         action= SetPtrDflt(affect=button,button=1);
837     };
838     interpret F26+AnyOfOrNone(all) {
839         repeat= True;
840         action= SetPtrDflt(affect=button,button=2);
841     };
842     interpret F27+AnyOfOrNone(all) {
843         repeat= True;
844         action= MovePtr(x=-1,y=-1);
845     };
846     interpret F29+AnyOfOrNone(all) {
847         repeat= True;
848         action= MovePtr(x=+1,y=-1);
849     };
850     interpret F31+AnyOfOrNone(all) {
851         repeat= True;
852         action= PtrBtn(button=default);
853     };
854     interpret F33+AnyOfOrNone(all) {
855         repeat= True;
856         action= MovePtr(x=-1,y=+1);
857     };
858     interpret F35+AnyOfOrNone(all) {
859         repeat= True;
860         action= MovePtr(x=+1,y=+1);
861     };
862     interpret Pointer_Button_Dflt+AnyOfOrNone(all) {
863         action= PtrBtn(button=default);
864     };
865     interpret Pointer_Button1+AnyOfOrNone(all) {
866         action= PtrBtn(button=1);
867     };
868     interpret Pointer_Button2+AnyOfOrNone(all) {
869         action= PtrBtn(button=2);
870     };
871     interpret Pointer_Button3+AnyOfOrNone(all) {
872         action= PtrBtn(button=3);
873     };
874     interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) {
875         action= PtrBtn(button=default,count=2);
876     };
877     interpret Pointer_DblClick1+AnyOfOrNone(all) {
878         action= PtrBtn(button=1,count=2);
879     };
880     interpret Pointer_DblClick2+AnyOfOrNone(all) {
881         action= PtrBtn(button=2,count=2);
882     };
883     interpret Pointer_DblClick3+AnyOfOrNone(all) {
884         action= PtrBtn(button=3,count=2);
885     };
886     interpret Pointer_Drag_Dflt+AnyOfOrNone(all) {
887         action= LockPtrBtn(button=default,affect=both);
888     };
889     interpret Pointer_Drag1+AnyOfOrNone(all) {
890         action= LockPtrBtn(button=1,affect=both);
891     };
892     interpret Pointer_Drag2+AnyOfOrNone(all) {
893         action= LockPtrBtn(button=2,affect=both);
894     };
895     interpret Pointer_Drag3+AnyOfOrNone(all) {
896         action= LockPtrBtn(button=3,affect=both);
897     };
898     interpret Pointer_EnableKeys+AnyOfOrNone(all) {
899         action= LockControls(controls=MouseKeys);
900     };
901     interpret Pointer_Accelerate+AnyOfOrNone(all) {
902         action= LockControls(controls=MouseKeysAccel);
903     };
904     interpret Pointer_DfltBtnNext+AnyOfOrNone(all) {
905         action= SetPtrDflt(affect=button,button=+1);
906     };
907     interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) {
908         action= SetPtrDflt(affect=button,button=-1);
909     };
910     interpret AccessX_Enable+AnyOfOrNone(all) {
911         action= LockControls(controls=AccessXKeys);
912     };
913     interpret AccessX_Feedback_Enable+AnyOfOrNone(all) {
914         action= LockControls(controls=AccessXFeedback);
915     };
916     interpret RepeatKeys_Enable+AnyOfOrNone(all) {
917         action= LockControls(controls=RepeatKeys);
918     };
919     interpret SlowKeys_Enable+AnyOfOrNone(all) {
920         action= LockControls(controls=SlowKeys);
921     };
922     interpret BounceKeys_Enable+AnyOfOrNone(all) {
923         action= LockControls(controls=BounceKeys);
924     };
925     interpret StickyKeys_Enable+AnyOfOrNone(all) {
926         action= LockControls(controls=StickyKeys);
927     };
928     interpret MouseKeys_Enable+AnyOfOrNone(all) {
929         action= LockControls(controls=MouseKeys);
930     };
931     interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) {
932         action= LockControls(controls=MouseKeysAccel);
933     };
934     interpret Overlay1_Enable+AnyOfOrNone(all) {
935         action= LockControls(controls=Overlay1);
936     };
937     interpret Overlay2_Enable+AnyOfOrNone(all) {
938         action= LockControls(controls=Overlay2);
939     };
940     interpret AudibleBell_Enable+AnyOfOrNone(all) {
941         action= LockControls(controls=AudibleBell);
942     };
943     interpret Terminate_Server+AnyOfOrNone(all) {
944         action= Terminate();
945     };
946     interpret Alt_L+AnyOfOrNone(all) {
947         action= SetMods(modifiers=Alt,clearLocks);
948     };
949     interpret Alt_R+AnyOfOrNone(all) {
950         action= SetMods(modifiers=Alt,clearLocks);
951     };
952     interpret Meta_L+AnyOfOrNone(all) {
953         action= SetMods(modifiers=Meta,clearLocks);
954     };
955     interpret Meta_R+AnyOfOrNone(all) {
956         action= SetMods(modifiers=Meta,clearLocks);
957     };
958     interpret Super_L+AnyOfOrNone(all) {
959         action= SetMods(modifiers=Super,clearLocks);
960     };
961     interpret Super_R+AnyOfOrNone(all) {
962         action= SetMods(modifiers=Super,clearLocks);
963     };
964     interpret Hyper_L+AnyOfOrNone(all) {
965         action= SetMods(modifiers=Hyper,clearLocks);
966     };
967     interpret Hyper_R+AnyOfOrNone(all) {
968         action= SetMods(modifiers=Hyper,clearLocks);
969     };
970     interpret Shift_L+AnyOfOrNone(all) {
971         action= SetMods(modifiers=Shift,clearLocks);
972     };
973     interpret XF86Switch_VT_1+AnyOfOrNone(all) {
974         repeat= True;
975         action= SwitchScreen(screen=1,!same);
976     };
977     interpret XF86Switch_VT_2+AnyOfOrNone(all) {
978         repeat= True;
979         action= SwitchScreen(screen=2,!same);
980     };
981     interpret XF86Switch_VT_3+AnyOfOrNone(all) {
982         repeat= True;
983         action= SwitchScreen(screen=3,!same);
984     };
985     interpret XF86Switch_VT_4+AnyOfOrNone(all) {
986         repeat= True;
987         action= SwitchScreen(screen=4,!same);
988     };
989     interpret XF86Switch_VT_5+AnyOfOrNone(all) {
990         repeat= True;
991         action= SwitchScreen(screen=5,!same);
992     };
993     interpret XF86Switch_VT_6+AnyOfOrNone(all) {
994         repeat= True;
995         action= SwitchScreen(screen=6,!same);
996     };
997     interpret XF86Switch_VT_7+AnyOfOrNone(all) {
998         repeat= True;
999         action= SwitchScreen(screen=7,!same);
1000     };
1001     interpret XF86Switch_VT_8+AnyOfOrNone(all) {
1002         repeat= True;
1003         action= SwitchScreen(screen=8,!same);
1004     };
1005     interpret XF86Switch_VT_9+AnyOfOrNone(all) {
1006         repeat= True;
1007         action= SwitchScreen(screen=9,!same);
1008     };
1009     interpret XF86Switch_VT_10+AnyOfOrNone(all) {
1010         repeat= True;
1011         action= SwitchScreen(screen=10,!same);
1012     };
1013     interpret XF86Switch_VT_11+AnyOfOrNone(all) {
1014         repeat= True;
1015         action= SwitchScreen(screen=11,!same);
1016     };
1017     interpret XF86Switch_VT_12+AnyOfOrNone(all) {
1018         repeat= True;
1019         action= SwitchScreen(screen=12,!same);
1020     };
1021     interpret XF86LogGrabInfo+AnyOfOrNone(all) {
1022         repeat= True;
1023         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);
1024     };
1025     interpret XF86LogWindowTree+AnyOfOrNone(all) {
1026         repeat= True;
1027         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);
1028     };
1029     interpret XF86Next_VMode+AnyOfOrNone(all) {
1030         repeat= True;
1031         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);
1032     };
1033     interpret XF86Prev_VMode+AnyOfOrNone(all) {
1034         repeat= True;
1035         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);
1036     };
1037     interpret ISO_Level5_Shift+AnyOfOrNone(all) {
1038         action= SetMods(modifiers=LevelFive,clearLocks);
1039     };
1040     interpret ISO_Level5_Latch+AnyOfOrNone(all) {
1041         action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
1042     };
1043     interpret ISO_Level5_Lock+AnyOfOrNone(all) {
1044         action= LockMods(modifiers=LevelFive);
1045     };
1046     interpret Caps_Lock+AnyOfOrNone(all) {
1047         action= LockMods(modifiers=Lock);
1048     };
1049     interpret Any+Exactly(Lock) {
1050         action= LockMods(modifiers=Lock);
1051     };
1052     interpret Any+AnyOf(all) {
1053         action= SetMods(modifiers=modMapMods,clearLocks);
1054     };
1055     group 2 = AltGr;
1056     group 3 = AltGr;
1057     group 4 = AltGr;
1058     indicator "Caps Lock" {
1059         !allowExplicit;
1060         whichModState= locked;
1061         modifiers= Lock;
1062     };
1063     indicator "Num Lock" {
1064         !allowExplicit;
1065         whichModState= locked;
1066         modifiers= NumLock;
1067     };
1068     indicator "Scroll Lock" {
1069         whichModState= locked;
1070         modifiers= ScrollLock;
1071     };
1072     indicator "Shift Lock" {
1073         !allowExplicit;
1074         whichModState= locked;
1075         modifiers= Shift;
1076     };
1077     indicator "Group 2" {
1078         !allowExplicit;
1079         groups= 0xfe;
1080     };
1081     indicator "Mouse Keys" {
1082         indicatorDrivesKeyboard;
1083         controls= mouseKeys;
1084     };
1085 };
1086
1087 xkb_symbols "pc+de+inet(evdev)+group(menu_toggle)+ctrl(nocaps)" {
1088
1089     name[group1]="German";
1090
1091     key  <ESC> {         [          Escape ] };
1092     key <AE01> {
1093         type= "FOUR_LEVEL",
1094         symbols[Group1]= [               1,          exclam,     onesuperior,      exclamdown ]
1095     };
1096     key <AE02> {
1097         type= "FOUR_LEVEL",
1098         symbols[Group1]= [               2,        quotedbl,     twosuperior,       oneeighth ]
1099     };
1100     key <AE03> {
1101         type= "FOUR_LEVEL",
1102         symbols[Group1]= [               3,         section,   threesuperior,        sterling ]
1103     };
1104     key <AE04> {
1105         type= "FOUR_LEVEL",
1106         symbols[Group1]= [               4,          dollar,      onequarter,        currency ]
1107     };
1108     key <AE05> {
1109         type= "FOUR_LEVEL",
1110         symbols[Group1]= [               5,         percent,         onehalf,    threeeighths ]
1111     };
1112     key <AE06> {
1113         type= "FOUR_LEVEL",
1114         symbols[Group1]= [               6,       ampersand,         notsign,     fiveeighths ]
1115     };
1116     key <AE07> {
1117         type= "FOUR_LEVEL",
1118         symbols[Group1]= [               7,           slash,       braceleft,    seveneighths ]
1119     };
1120     key <AE08> {
1121         type= "FOUR_LEVEL",
1122         symbols[Group1]= [               8,       parenleft,     bracketleft,       trademark ]
1123     };
1124     key <AE09> {
1125         type= "FOUR_LEVEL",
1126         symbols[Group1]= [               9,      parenright,    bracketright,       plusminus ]
1127     };
1128     key <AE10> {
1129         type= "FOUR_LEVEL",
1130         symbols[Group1]= [               0,           equal,      braceright,          degree ]
1131     };
1132     key <AE11> {
1133         type= "FOUR_LEVEL_PLUS_LOCK",
1134         symbols[Group1]= [          ssharp,        question,       backslash,    questiondown,           U1E9E ]
1135     };
1136     key <AE12> {
1137         type= "FOUR_LEVEL",
1138         symbols[Group1]= [      dead_acute,      dead_grave,    dead_cedilla,     dead_ogonek ]
1139     };
1140     key <BKSP> {         [       BackSpace,       BackSpace ] };
1141     key  <TAB> {         [             Tab,    ISO_Left_Tab ] };
1142     key <AD01> {
1143         type= "FOUR_LEVEL_SEMIALPHABETIC",
1144         symbols[Group1]= [               q,               Q,              at,     Greek_OMEGA ]
1145     };
1146     key <AD02> {
1147         type= "FOUR_LEVEL_ALPHABETIC",
1148         symbols[Group1]= [               w,               W,         lstroke,         Lstroke ]
1149     };
1150     key <AD03> {
1151         type= "FOUR_LEVEL_SEMIALPHABETIC",
1152         symbols[Group1]= [               e,               E,        EuroSign,        EuroSign ]
1153     };
1154     key <AD04> {
1155         type= "FOUR_LEVEL_SEMIALPHABETIC",
1156         symbols[Group1]= [               r,               R,       paragraph,      registered ]
1157     };
1158     key <AD05> {
1159         type= "FOUR_LEVEL_ALPHABETIC",
1160         symbols[Group1]= [               t,               T,          tslash,          Tslash ]
1161     };
1162     key <AD06> {
1163         type= "FOUR_LEVEL_SEMIALPHABETIC",
1164         symbols[Group1]= [               z,               Z,       leftarrow,             yen ]
1165     };
1166     key <AD07> {
1167         type= "FOUR_LEVEL_SEMIALPHABETIC",
1168         symbols[Group1]= [               u,               U,       downarrow,         uparrow ]
1169     };
1170     key <AD08> {
1171         type= "FOUR_LEVEL_SEMIALPHABETIC",
1172         symbols[Group1]= [               i,               I,      rightarrow,        idotless ]
1173     };
1174     key <AD09> {
1175         type= "FOUR_LEVEL_ALPHABETIC",
1176         symbols[Group1]= [               o,               O,          oslash,          Oslash ]
1177     };
1178     key <AD10> {
1179         type= "FOUR_LEVEL_ALPHABETIC",
1180         symbols[Group1]= [               p,               P,           thorn,           THORN ]
1181     };
1182     key <AD11> {
1183         type= "FOUR_LEVEL_SEMIALPHABETIC",
1184         symbols[Group1]= [      udiaeresis,      Udiaeresis,  dead_diaeresis,  dead_abovering ]
1185     };
1186     key <AD12> {
1187         type= "FOUR_LEVEL",
1188         symbols[Group1]= [            plus,        asterisk,      asciitilde,          macron ]
1189     };
1190     key <RTRN> {         [          Return ] };
1191     key <LCTL> {         [       Control_L ] };
1192     key <AC01> {
1193         type= "FOUR_LEVEL_ALPHABETIC",
1194         symbols[Group1]= [               a,               A,              ae,              AE ]
1195     };
1196     key <AC02> {
1197         type= "FOUR_LEVEL_SEMIALPHABETIC",
1198         symbols[Group1]= [               s,               S,           U017F,           U1E9E ]
1199     };
1200     key <AC03> {
1201         type= "FOUR_LEVEL_ALPHABETIC",
1202         symbols[Group1]= [               d,               D,             eth,             ETH ]
1203     };
1204     key <AC04> {
1205         type= "FOUR_LEVEL_SEMIALPHABETIC",
1206         symbols[Group1]= [               f,               F,         dstroke,     ordfeminine ]
1207     };
1208     key <AC05> {
1209         type= "FOUR_LEVEL_ALPHABETIC",
1210         symbols[Group1]= [               g,               G,             eng,             ENG ]
1211     };
1212     key <AC06> {
1213         type= "FOUR_LEVEL_ALPHABETIC",
1214         symbols[Group1]= [               h,               H,         hstroke,         Hstroke ]
1215     };
1216     key <AC07> {
1217         type= "FOUR_LEVEL_SEMIALPHABETIC",
1218         symbols[Group1]= [               j,               J,   dead_belowdot,   dead_abovedot ]
1219     };
1220     key <AC08> {
1221         type= "FOUR_LEVEL_SEMIALPHABETIC",
1222         symbols[Group1]= [               k,               K,             kra,       ampersand ]
1223     };
1224     key <AC09> {
1225         type= "FOUR_LEVEL_ALPHABETIC",
1226         symbols[Group1]= [               l,               L,         lstroke,         Lstroke ]
1227     };
1228     key <AC10> {
1229         type= "FOUR_LEVEL_SEMIALPHABETIC",
1230         symbols[Group1]= [      odiaeresis,      Odiaeresis, dead_doubleacute,   dead_belowdot ]
1231     };
1232     key <AC11> {
1233         type= "FOUR_LEVEL_SEMIALPHABETIC",
1234         symbols[Group1]= [      adiaeresis,      Adiaeresis, dead_circumflex,      dead_caron ]
1235     };
1236     key <TLDE> {
1237         type= "FOUR_LEVEL",
1238         symbols[Group1]= [ dead_circumflex,          degree,           U2032,           U2033 ]
1239     };
1240     key <LFSH> {         [         Shift_L ] };
1241     key <BKSL> {
1242         type= "FOUR_LEVEL",
1243         symbols[Group1]= [      numbersign,      apostrophe, rightsinglequotemark,      dead_breve ]
1244     };
1245     key <AB01> {
1246         type= "FOUR_LEVEL_SEMIALPHABETIC",
1247         symbols[Group1]= [               y,               Y,  guillemotright,           U203A ]
1248     };
1249     key <AB02> {
1250         type= "FOUR_LEVEL_SEMIALPHABETIC",
1251         symbols[Group1]= [               x,               X,   guillemotleft,           U2039 ]
1252     };
1253     key <AB03> {
1254         type= "FOUR_LEVEL_SEMIALPHABETIC",
1255         symbols[Group1]= [               c,               C,            cent,       copyright ]
1256     };
1257     key <AB04> {
1258         type= "FOUR_LEVEL_SEMIALPHABETIC",
1259         symbols[Group1]= [               v,               V, doublelowquotemark, singlelowquotemark ]
1260     };
1261     key <AB05> {
1262         type= "FOUR_LEVEL_SEMIALPHABETIC",
1263         symbols[Group1]= [               b,               B, leftdoublequotemark, leftsinglequotemark ]
1264     };
1265     key <AB06> {
1266         type= "FOUR_LEVEL_SEMIALPHABETIC",
1267         symbols[Group1]= [               n,               N, rightdoublequotemark, rightsinglequotemark ]
1268     };
1269     key <AB07> {
1270         type= "FOUR_LEVEL_SEMIALPHABETIC",
1271         symbols[Group1]= [               m,               M,              mu,       masculine ]
1272     };
1273     key <AB08> {
1274         type= "FOUR_LEVEL",
1275         symbols[Group1]= [           comma,       semicolon,  periodcentered,        multiply ]
1276     };
1277     key <AB09> {
1278         type= "FOUR_LEVEL",
1279         symbols[Group1]= [          period,           colon,           U2026,        division ]
1280     };
1281     key <AB10> {
1282         type= "FOUR_LEVEL",
1283         symbols[Group1]= [           minus,      underscore,          endash,          emdash ]
1284     };
1285     key <RTSH> {         [         Shift_R ] };
1286     key <KPMU> {
1287         type= "CTRL+ALT",
1288         symbols[Group1]= [     KP_Multiply,     KP_Multiply,     KP_Multiply,     KP_Multiply,   XF86ClearGrab ]
1289     };
1290     key <LALT> {         [           Alt_L,          Meta_L ] };
1291     key <SPCE> {         [           space ] };
1292     key <CAPS> {         [       Control_L,       Control_L ] };
1293     key <FK01> {
1294         type= "CTRL+ALT",
1295         symbols[Group1]= [              F1,              F1,              F1,              F1, XF86Switch_VT_1 ]
1296     };
1297     key <FK02> {
1298         type= "CTRL+ALT",
1299         symbols[Group1]= [              F2,              F2,              F2,              F2, XF86Switch_VT_2 ]
1300     };
1301     key <FK03> {
1302         type= "CTRL+ALT",
1303         symbols[Group1]= [              F3,              F3,              F3,              F3, XF86Switch_VT_3 ]
1304     };
1305     key <FK04> {
1306         type= "CTRL+ALT",
1307         symbols[Group1]= [              F4,              F4,              F4,              F4, XF86Switch_VT_4 ]
1308     };
1309     key <FK05> {
1310         type= "CTRL+ALT",
1311         symbols[Group1]= [              F5,              F5,              F5,              F5, XF86Switch_VT_5 ]
1312     };
1313     key <FK06> {
1314         type= "CTRL+ALT",
1315         symbols[Group1]= [              F6,              F6,              F6,              F6, XF86Switch_VT_6 ]
1316     };
1317     key <FK07> {
1318         type= "CTRL+ALT",
1319         symbols[Group1]= [              F7,              F7,              F7,              F7, XF86Switch_VT_7 ]
1320     };
1321     key <FK08> {
1322         type= "CTRL+ALT",
1323         symbols[Group1]= [              F8,              F8,              F8,              F8, XF86Switch_VT_8 ]
1324     };
1325     key <FK09> {
1326         type= "CTRL+ALT",
1327         symbols[Group1]= [              F9,              F9,              F9,              F9, XF86Switch_VT_9 ]
1328     };
1329     key <FK10> {
1330         type= "CTRL+ALT",
1331         symbols[Group1]= [             F10,             F10,             F10,             F10, XF86Switch_VT_10 ]
1332     };
1333     key <NMLK> {         [        Num_Lock ] };
1334     key <SCLK> {         [     Scroll_Lock ] };
1335     key  <KP7> {         [         KP_Home,            KP_7 ] };
1336     key  <KP8> {         [           KP_Up,            KP_8 ] };
1337     key  <KP9> {         [        KP_Prior,            KP_9 ] };
1338     key <KPSU> {
1339         type= "CTRL+ALT",
1340         symbols[Group1]= [     KP_Subtract,     KP_Subtract,     KP_Subtract,     KP_Subtract,  XF86Prev_VMode ]
1341     };
1342     key  <KP4> {         [         KP_Left,            KP_4 ] };
1343     key  <KP5> {         [        KP_Begin,            KP_5 ] };
1344     key  <KP6> {         [        KP_Right,            KP_6 ] };
1345     key <KPAD> {
1346         type= "CTRL+ALT",
1347         symbols[Group1]= [          KP_Add,          KP_Add,          KP_Add,          KP_Add,  XF86Next_VMode ]
1348     };
1349     key  <KP1> {         [          KP_End,            KP_1 ] };
1350     key  <KP2> {         [         KP_Down,            KP_2 ] };
1351     key  <KP3> {         [         KP_Next,            KP_3 ] };
1352     key  <KP0> {         [       KP_Insert,            KP_0 ] };
1353     key <KPDL> {
1354         type= "KEYPAD",
1355         symbols[Group1]= [       KP_Delete,    KP_Separator ]
1356     };
1357     key <LVL3> {
1358         type= "ONE_LEVEL",
1359         symbols[Group1]= [ ISO_Level3_Shift ],
1360         actions[Group1]= [ SetMods(modifiers=LevelThree) ]
1361     };
1362     key <LSGT> {
1363         type= "FOUR_LEVEL",
1364         symbols[Group1]= [            less,         greater,             bar,       brokenbar ]
1365     };
1366     key <FK11> {
1367         type= "CTRL+ALT",
1368         symbols[Group1]= [             F11,             F11,             F11,             F11, XF86Switch_VT_11 ]
1369     };
1370     key <FK12> {
1371         type= "CTRL+ALT",
1372         symbols[Group1]= [             F12,             F12,             F12,             F12, XF86Switch_VT_12 ]
1373     };
1374     key <KATA> {         [        Katakana ] };
1375     key <HIRA> {         [        Hiragana ] };
1376     key <HENK> {         [     Henkan_Mode ] };
1377     key <HKTG> {         [ Hiragana_Katakana ] };
1378     key <MUHE> {         [        Muhenkan ] };
1379     key <KPEN> {         [        KP_Enter ] };
1380     key <RCTL> {         [       Control_R ] };
1381     key <KPDV> {
1382         type= "CTRL+ALT",
1383         symbols[Group1]= [       KP_Divide,       KP_Divide,       KP_Divide,       KP_Divide,      XF86Ungrab ]
1384     };
1385     key <PRSC> {
1386         type= "PC_ALT_LEVEL2",
1387         symbols[Group1]= [           Print,         Sys_Req ]
1388     };
1389     key <RALT> {
1390         type= "ONE_LEVEL",
1391         symbols[Group1]= [ ISO_Level3_Shift ]
1392     };
1393     key <LNFD> {         [        Linefeed ] };
1394     key <HOME> {         [            Home ] };
1395     key   <UP> {         [              Up ] };
1396     key <PGUP> {         [           Prior ] };
1397     key <LEFT> {         [            Left ] };
1398     key <RGHT> {         [           Right ] };
1399     key  <END> {         [             End ] };
1400     key <DOWN> {         [            Down ] };
1401     key <PGDN> {         [            Next ] };
1402     key  <INS> {         [          Insert ] };
1403     key <DELE> {         [          Delete ] };
1404     key <MUTE> {         [   XF86AudioMute ] };
1405     key <VOL-> {         [ XF86AudioLowerVolume ] };
1406     key <VOL+> {         [ XF86AudioRaiseVolume ] };
1407     key <POWR> {         [    XF86PowerOff ] };
1408     key <KPEQ> {         [        KP_Equal ] };
1409     key <I126> {         [       plusminus ] };
1410     key <PAUS> {
1411         type= "PC_CONTROL_LEVEL2",
1412         symbols[Group1]= [           Pause,           Break ]
1413     };
1414     key <I128> {         [     XF86LaunchA ] };
1415     key <I129> {         [      KP_Decimal,      KP_Decimal ] };
1416     key <HNGL> {         [          Hangul ] };
1417     key <HJCV> {         [    Hangul_Hanja ] };
1418     key <LWIN> {         [         Super_L ] };
1419     key <RWIN> {         [         Super_R ] };
1420     key <COMP> {         [  ISO_Next_Group,            Menu ] };
1421     key <STOP> {         [          Cancel ] };
1422     key <AGAI> {         [            Redo ] };
1423     key <PROP> {         [        SunProps ] };
1424     key <UNDO> {         [            Undo ] };
1425     key <FRNT> {         [        SunFront ] };
1426     key <COPY> {         [        XF86Copy ] };
1427     key <OPEN> {         [        XF86Open ] };
1428     key <PAST> {         [       XF86Paste ] };
1429     key <FIND> {         [            Find ] };
1430     key  <CUT> {         [         XF86Cut ] };
1431     key <HELP> {         [            Help ] };
1432     key <I147> {         [      XF86MenuKB ] };
1433     key <I148> {         [  XF86Calculator ] };
1434     key <I150> {         [       XF86Sleep ] };
1435     key <I151> {         [      XF86WakeUp ] };
1436     key <I152> {         [    XF86Explorer ] };
1437     key <I153> {         [        XF86Send ] };
1438     key <I155> {         [        XF86Xfer ] };
1439     key <I156> {         [     XF86Launch1 ] };
1440     key <I157> {         [     XF86Launch2 ] };
1441     key <I158> {         [         XF86WWW ] };
1442     key <I159> {         [         XF86DOS ] };
1443     key <I160> {         [ XF86ScreenSaver ] };
1444     key <I162> {         [ XF86RotateWindows ] };
1445     key <I163> {         [        XF86Mail ] };
1446     key <I164> {         [   XF86Favorites ] };
1447     key <I165> {         [  XF86MyComputer ] };
1448     key <I166> {         [        XF86Back ] };
1449     key <I167> {         [     XF86Forward ] };
1450     key <I169> {         [       XF86Eject ] };
1451     key <I170> {         [       XF86Eject,       XF86Eject ] };
1452     key <I171> {         [   XF86AudioNext ] };
1453     key <I172> {         [   XF86AudioPlay,  XF86AudioPause ] };
1454     key <I173> {         [   XF86AudioPrev ] };
1455     key <I174> {         [   XF86AudioStop,       XF86Eject ] };
1456     key <I175> {         [ XF86AudioRecord ] };
1457     key <I176> {         [ XF86AudioRewind ] };
1458     key <I177> {         [       XF86Phone ] };
1459     key <I179> {         [       XF86Tools ] };
1460     key <I180> {         [    XF86HomePage ] };
1461     key <I181> {         [      XF86Reload ] };
1462     key <I182> {         [       XF86Close ] };
1463     key <I185> {         [    XF86ScrollUp ] };
1464     key <I186> {         [  XF86ScrollDown ] };
1465     key <I187> {         [       parenleft ] };
1466     key <I188> {         [      parenright ] };
1467     key <I189> {         [         XF86New ] };
1468     key <I190> {         [            Redo ] };
1469     key <FK13> {         [       XF86Tools ] };
1470     key <FK14> {         [     XF86Launch5 ] };
1471     key <FK15> {         [     XF86Launch6 ] };
1472     key <FK16> {         [     XF86Launch7 ] };
1473     key <FK17> {         [     XF86Launch8 ] };
1474     key <FK18> {         [     XF86Launch9 ] };
1475     key <FK21> {         [ XF86TouchpadToggle ] };
1476     key <FK22> {         [  XF86TouchpadOn ] };
1477     key <FK23> {         [ XF86TouchpadOff ] };
1478     key <MDSW> {         [     Mode_switch ] };
1479     key  <ALT> {         [        NoSymbol,           Alt_L ] };
1480     key <META> {         [        NoSymbol,          Meta_L ] };
1481     key <SUPR> {         [        NoSymbol,         Super_L ] };
1482     key <HYPR> {         [        NoSymbol,         Hyper_L ] };
1483     key <I208> {         [   XF86AudioPlay ] };
1484     key <I209> {         [  XF86AudioPause ] };
1485     key <I210> {         [     XF86Launch3 ] };
1486     key <I211> {         [     XF86Launch4 ] };
1487     key <I212> {         [     XF86LaunchB ] };
1488     key <I213> {         [     XF86Suspend ] };
1489     key <I214> {         [       XF86Close ] };
1490     key <I215> {         [   XF86AudioPlay ] };
1491     key <I216> {         [ XF86AudioForward ] };
1492     key <I218> {         [           Print ] };
1493     key <I220> {         [      XF86WebCam ] };
1494     key <I223> {         [        XF86Mail ] };
1495     key <I224> {         [   XF86Messenger ] };
1496     key <I225> {         [      XF86Search ] };
1497     key <I226> {         [          XF86Go ] };
1498     key <I227> {         [     XF86Finance ] };
1499     key <I228> {         [        XF86Game ] };
1500     key <I229> {         [        XF86Shop ] };
1501     key <I231> {         [          Cancel ] };
1502     key <I232> {         [ XF86MonBrightnessDown ] };
1503     key <I233> {         [ XF86MonBrightnessUp ] };
1504     key <I234> {         [  XF86AudioMedia ] };
1505     key <I235> {         [     XF86Display ] };
1506     key <I236> {         [ XF86KbdLightOnOff ] };
1507     key <I237> {         [ XF86KbdBrightnessDown ] };
1508     key <I238> {         [ XF86KbdBrightnessUp ] };
1509     key <I239> {         [        XF86Send ] };
1510     key <I240> {         [       XF86Reply ] };
1511     key <I241> {         [ XF86MailForward ] };
1512     key <I242> {         [        XF86Save ] };
1513     key <I243> {         [   XF86Documents ] };
1514     key <I244> {         [     XF86Battery ] };
1515     key <I245> {         [   XF86Bluetooth ] };
1516     key <I246> {         [        XF86WLAN ] };
1517     modifier_map Control { <LCTL> };
1518     modifier_map Shift { <LFSH> };
1519     modifier_map Shift { <RTSH> };
1520     modifier_map Mod1 { <LALT> };
1521     modifier_map Control { <CAPS> };
1522     modifier_map Mod2 { <NMLK> };
1523     modifier_map Mod5 { <LVL3> };
1524     modifier_map Control { <RCTL> };
1525     modifier_map Mod4 { <LWIN> };
1526     modifier_map Mod4 { <RWIN> };
1527     modifier_map Mod5 { <MDSW> };
1528     modifier_map Mod1 { <META> };
1529     modifier_map Mod4 { <SUPR> };
1530     modifier_map Mod4 { <HYPR> };
1531 };
1532
1533 };