Fix issues detected by static analysis tool
[platform/upstream/libxkbcommon.git] / test / data / keymaps / syntax-error.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     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 <LatY> = <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 <LatZ> = <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         map[LevelThree]= Level3;
372         map[Shift+LevelThree]= Level4;
373         map[Control+Alt]= Level5;
374         level_name[Level1]= "Base";
375         level_name[Level2]= "Shift";
376         level_name[Level3]= "Alt Base";
377         level_name[Level4]= "Shift Alt";
378         level_name[Level5]= "Ctrl+Alt";
379     };
380     type "LOCAL_EIGHT_LEVEL" {
381         modifiers= Shift+Lock+Control+LevelThree;
382         map[Shift+Lock]= Level1;
383         map[Shift]= Level2;
384         map[Lock]= Level2;
385         map[LevelThree]= Level3;
386         map[Shift+Lock+LevelThree]= Level3;
387         map[Shift+LevelThree]= Level4;
388         map[Lock+LevelThree]= Level4;
389         map[Control]= Level5;
390         map[Shift+Lock+Control]= Level5;
391         map[Shift+Control]= Level6;
392         map[Lock+Control]= Level6;
393         map[Control+LevelThree]= Level7;
394         map[Shift+Lock+Control+LevelThree]= Level7;
395         map[Shift+Control+LevelThree]= Level8;
396         map[Lock+Control+LevelThree]= Level8;
397         level_name[Level1]= "Base";
398         level_name[Level2]= "Shift";
399         level_name[Level3]= "Level3";
400         level_name[Level4]= "Shift Level3";
401         level_name[Level5]= "Ctrl";
402         level_name[Level6]= "Shift Ctrl";
403         level_name[Level7]= "Level3 Ctrl";
404         level_name[Level8]= "Shift Level3 Ctrl";
405     };
406     type "THREE_LEVEL" {
407         modifiers= Shift+LevelThree;
408         map[Shift]= Level2;
409         map[LevelThree]= Level3;
410         map[Shift+LevelThree]= Level3;
411         level_name[Level1]= "Base";
412         level_name[Level2]= "Shift";
413         level_name[Level3]= "Level3";
414     };
415     type "EIGHT_LEVEL" {
416         modifiers= Shift+LevelThree+LevelFive;
417         map[Shift]= Level2;
418         map[LevelThree]= Level3;
419         map[Shift+LevelThree]= Level4;
420         map[LevelFive]= Level5;
421         map[Shift+LevelFive]= Level6;
422         map[LevelThree+LevelFive]= Level7;
423         map[Shift+LevelThree+LevelFive]= Level8;
424         level_name[Level1]= "Base";
425         level_name[Level2]= "Shift";
426         level_name[Level3]= "Alt Base";
427         level_name[Level4]= "Shift Alt";
428         level_name[Level5]= "X";
429         level_name[Level6]= "X Shift";
430         level_name[Level7]= "X Alt Base";
431         level_name[Level8]= "X Shift Alt";
432     };
433     type "EIGHT_LEVEL_ALPHABETIC" {
434         modifiers= Shift+Lock+LevelThree+LevelFive;
435         map[Shift]= Level2;
436         map[Lock]= Level2;
437         map[LevelThree]= Level3;
438         map[Shift+LevelThree]= Level4;
439         map[Lock+LevelThree]= Level4;
440         map[Shift+Lock+LevelThree]= Level3;
441         map[LevelFive]= Level5;
442         map[Shift+LevelFive]= Level6;
443         map[Lock+LevelFive]= Level6;
444         map[LevelThree+LevelFive]= Level7;
445         map[Shift+LevelThree+LevelFive]= Level8;
446         map[Lock+LevelThree+LevelFive]= Level8;
447         map[Shift+Lock+LevelThree+LevelFive]= Level7;
448         level_name[Level1]= "Base";
449         level_name[Level2]= "Shift";
450         level_name[Level3]= "Alt Base";
451         level_name[Level4]= "Shift Alt";
452         level_name[Level5]= "X";
453         level_name[Level6]= "X Shift";
454         level_name[Level7]= "X Alt Base";
455         level_name[Level8]= "X Shift Alt";
456     };
457     type "EIGHT_LEVEL_SEMIALPHABETIC" {
458         modifiers= Shift+Lock+LevelThree+LevelFive;
459         map[Shift]= Level2;
460         map[Lock]= Level2;
461         map[LevelThree]= Level3;
462         map[Shift+LevelThree]= Level4;
463         map[Lock+LevelThree]= Level3;
464         preserve[Lock+LevelThree]= Lock;
465         map[Shift+Lock+LevelThree]= Level4;
466         preserve[Shift+Lock+LevelThree]= Lock;
467         map[LevelFive]= Level5;
468         map[Shift+LevelFive]= Level6;
469         map[Lock+LevelFive]= Level6;
470         preserve[Lock+LevelFive]= Lock;
471         map[LevelThree+LevelFive]= Level7;
472         map[Shift+LevelThree+LevelFive]= Level8;
473         map[Lock+LevelThree+LevelFive]= Level7;
474         preserve[Lock+LevelThree+LevelFive]= Lock;
475         map[Shift+Lock+LevelThree+LevelFive]= Level8;
476         preserve[Shift+Lock+LevelThree+LevelFive]= Lock;
477         map[Shift+Lock+LevelFive]= Level1;
478         preserve[Shift+Lock+LevelFive]= Lock;
479         level_name[Level1]= "Base";
480         level_name[Level2]= "Shift";
481         level_name[Level3]= "Alt Base";
482         level_name[Level4]= "Shift Alt";
483         level_name[Level5]= "X";
484         level_name[Level6]= "X Shift";
485         level_name[Level7]= "X Alt Base";
486         level_name[Level8]= "X Shift Alt";
487     };
488     type "FOUR_LEVEL" {
489         modifiers= Shift+LevelThree;
490         map[Shift]= Level2;
491         map[LevelThree]= Level3;
492         map[Shift+LevelThree]= Level4;
493         level_name[Level1]= "Base";
494         level_name[Level2]= "Shift";
495         level_name[Level3]= "Alt Base";
496         level_name[Level4]= "Shift Alt";
497     };
498     type "FOUR_LEVEL_ALPHABETIC" {
499         modifiers= Shift+Lock+LevelThree;
500         map[Shift]= Level2;
501         map[Lock]= Level2;
502         map[LevelThree]= Level3;
503         map[Shift+LevelThree]= Level4;
504         map[Lock+LevelThree]= Level4;
505         map[Shift+Lock+LevelThree]= Level3;
506         level_name[Level1]= "Base";
507         level_name[Level2]= "Shift";
508         level_name[Level3]= "Alt Base";
509         level_name[Level4]= "Shift Alt";
510     };
511     type "FOUR_LEVEL_SEMIALPHABETIC" {
512         modifiers= Shift+Lock+LevelThree;
513         map[Shift]= Level2;
514         map[Lock]= Level2;
515         map[LevelThree]= Level3;
516         map[Shift+LevelThree]= Level4;
517         map[Lock+LevelThree]= Level3;
518         preserve[Lock+LevelThree]= Lock;
519         map[Shift+Lock+LevelThree]= Level4;
520         preserve[Shift+Lock+LevelThree]= Lock;
521         level_name[Level1]= "Base";
522         level_name[Level2]= "Shift";
523         level_name[Level3]= "Alt Base";
524         level_name[Level4]= "Shift Alt";
525     };
526     type "FOUR_LEVEL_MIXED_KEYPAD" {
527         modifiers= Shift+NumLock+LevelThree;
528         map[Shift+NumLock]= Level1;
529         map[NumLock]= Level2;
530         map[Shift]= Level2;
531         map[LevelThree]= Level3;
532         map[NumLock+LevelThree]= Level3;
533         map[Shift+LevelThree]= Level4;
534         map[Shift+NumLock+LevelThree]= Level4;
535         level_name[Level1]= "Base";
536         level_name[Level2]= "Number";
537         level_name[Level3]= "Alt Base";
538         level_name[Level4]= "Shift Alt";
539     };
540     type "FOUR_LEVEL_X" {
541         modifiers= Shift+Control+Alt+LevelThree;
542         map[LevelThree]= Level2;
543         map[Shift+LevelThree]= Level3;
544         map[Control+Alt]= Level4;
545         level_name[Level1]= "Base";
546         level_name[Level2]= "Alt Base";
547         level_name[Level3]= "Shift Alt";
548         level_name[Level4]= "Ctrl+Alt";
549     };
550     type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" {
551         modifiers= Shift+Lock+LevelThree;
552         map[Shift]= Level2;
553         map[Lock]= Level4;
554         preserve[Lock]= Lock;
555         map[LevelThree]= Level3;
556         map[Shift+LevelThree]= Level4;
557         map[Lock+LevelThree]= Level3;
558         preserve[Lock+LevelThree]= Lock;
559         map[Shift+Lock+LevelThree]= Level3;
560         level_name[Level1]= "Base";
561         level_name[Level2]= "Shift";
562         level_name[Level3]= "AltGr Base";
563         level_name[Level4]= "Shift AltGr";
564     };
565     type "FOUR_LEVEL_PLUS_LOCK" {
566         modifiers= Shift+Lock+LevelThree;
567         map[Shift]= Level2;
568         map[LevelThree]= Level3;
569         map[Shift+LevelThree]= Level4;
570         map[Lock]= Level5;
571         map[Shift+Lock]= Level2;
572         map[Lock+LevelThree]= Level3;
573         map[Shift+Lock+LevelThree]= Level4;
574         level_name[Level1]= "Base";
575         level_name[Level2]= "Shift";
576         level_name[Level3]= "Alt Base";
577         level_name[Level4]= "Shift Alt";
578         level_name[Level5]= "Lock";
579     };
580     type "FOUR_LEVEL_KEYPAD" {
581         modifiers= Shift+NumLock+LevelThree;
582         map[Shift]= Level2;
583         map[NumLock]= Level2;
584         map[LevelThree]= Level3;
585         map[Shift+LevelThree]= Level4;
586         map[NumLock+LevelThree]= Level4;
587         map[Shift+NumLock+LevelThree]= Level3;
588         level_name[Level1]= "Base";
589         level_name[Level2]= "Number";
590         level_name[Level3]= "Alt Base";
591         level_name[Level4]= "Alt Number";
592     };
593 };
594
595 xkb_compatibility "complete" {
596
597     virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
598
599     interpret.useModMapMods= AnyLevel;
600     interpret.repeat= False;
601     interpret.locking= False;
602     interpret ISO_Level2_Latch+Exactly(Shift) {
603         useModMapMods=level1;
604         action= LatchMods(modifiers=Shift,clearLocks,latchToLock);
605     };
606     interpret Shift_Lock+AnyOf(Shift+Lock) {
607         action= LockMods(modifiers=Shift);
608     };
609     interpret Num_Lock+AnyOf(all) {
610         virtualModifier= NumLock;
611         action= LockMods(modifiers=NumLock);
612     };
613     interpret ISO_Lock+AnyOf(all) {
614         action= ISOLock(modifiers=modMapMods,affect=all);
615     };
616     interpret ISO_Level3_Shift+AnyOf(all) {
617         virtualModifier= LevelThree;
618         useModMapMods=level1;
619         action= SetMods(modifiers=LevelThree,clearLocks);
620     };
621     interpret ISO_Level3_Latch+AnyOf(all) {
622         virtualModifier= LevelThree;
623         useModMapMods=level1;
624         action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
625     };
626     interpret ISO_Level3_Lock+AnyOf(all) {
627         virtualModifier= LevelThree;
628         useModMapMods=level1;
629         action= LockMods(modifiers=LevelThree);
630     };
631     interpret Alt_L+AnyOf(all) {
632         virtualModifier= Alt;
633         action= SetMods(modifiers=modMapMods,clearLocks);
634     };
635     interpret Alt_R+AnyOf(all) {
636         virtualModifier= Alt;
637         action= SetMods(modifiers=modMapMods,clearLocks);
638     };
639     interpret Meta_L+AnyOf(all) {
640         virtualModifier= Meta;
641         action= SetMods(modifiers=modMapMods,clearLocks);
642     };
643     interpret Meta_R+AnyOf(all) {
644         virtualModifier= Meta;
645         action= SetMods(modifiers=modMapMods,clearLocks);
646     };
647     interpret Super_L+AnyOf(all) {
648         virtualModifier= Super;
649         action= SetMods(modifiers=modMapMods,clearLocks);
650     };
651     interpret Super_R+AnyOf(all) {
652         virtualModifier= Super;
653         action= SetMods(modifiers=modMapMods,clearLocks);
654     };
655     interpret Hyper_L+AnyOf(all) {
656         virtualModifier= Hyper;
657         action= SetMods(modifiers=modMapMods,clearLocks);
658     };
659     interpret Hyper_R+AnyOf(all) {
660         virtualModifier= Hyper;
661         action= SetMods(modifiers=modMapMods,clearLocks);
662     };
663     interpret Scroll_Lock+AnyOf(all) {
664         virtualModifier= ScrollLock;
665         action= LockMods(modifiers=modMapMods);
666     };
667     interpret ISO_Level5_Shift+AnyOf(all) {
668         virtualModifier= LevelFive;
669         useModMapMods=level1;
670         action= SetMods(modifiers=LevelFive,clearLocks);
671     };
672     interpret ISO_Level5_Latch+AnyOf(all) {
673         virtualModifier= LevelFive;
674         action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
675     };
676     interpret ISO_Level5_Lock+AnyOf(all) {
677         virtualModifier= LevelFive;
678         action= LockMods(modifiers=LevelFive);
679     };
680     interpret Mode_switch+AnyOfOrNone(all) {
681         virtualModifier= AltGr;
682         useModMapMods=level1;
683         action= SetGroup(group=+1);
684     };
685     interpret ISO_Level3_Shift+AnyOfOrNone(all) {
686         action= SetMods(modifiers=LevelThree,clearLocks);
687     };
688     interpret ISO_Level3_Latch+AnyOfOrNone(all) {
689         action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
690     };
691     interpret ISO_Level3_Lock+AnyOfOrNone(all) {
692         action= LockMods(modifiers=LevelThree);
693     };
694     interpret ISO_Group_Latch+AnyOfOrNone(all) {
695         virtualModifier= AltGr;
696         useModMapMods=level1;
697         action= LatchGroup(group=2);
698     };
699     interpret ISO_Next_Group+AnyOfOrNone(all) {
700         virtualModifier= AltGr;
701         useModMapMods=level1;
702         action= LockGroup(group=+1);
703     };
704     interpret ISO_Prev_Group+AnyOfOrNone(all) {
705         virtualModifier= AltGr;
706         useModMapMods=level1;
707         action= LockGroup(group=-1);
708     };
709     interpret ISO_First_Group+AnyOfOrNone(all) {
710         action= LockGroup(group=1);
711     };
712     interpret ISO_Last_Group+AnyOfOrNone(all) {
713         action= LockGroup(group=2);
714     };
715     interpret KP_1+AnyOfOrNone(all) {
716         repeat= True;
717         action= MovePtr(x=-1,y=+1);
718     };
719     interpret KP_End+AnyOfOrNone(all) {
720         repeat= True;
721         action= MovePtr(x=-1,y=+1);
722     };
723     interpret KP_2+AnyOfOrNone(all) {
724         repeat= True;
725         action= MovePtr(x=+0,y=+1);
726     };
727     interpret KP_Down+AnyOfOrNone(all) {
728         repeat= True;
729         action= MovePtr(x=+0,y=+1);
730     };
731     interpret KP_3+AnyOfOrNone(all) {
732         repeat= True;
733         action= MovePtr(x=+1,y=+1);
734     };
735     interpret KP_Next+AnyOfOrNone(all) {
736         repeat= True;
737         action= MovePtr(x=+1,y=+1);
738     };
739     interpret KP_4+AnyOfOrNone(all) {
740         repeat= True;
741         action= MovePtr(x=-1,y=+0);
742     };
743     interpret KP_Left+AnyOfOrNone(all) {
744         repeat= True;
745         action= MovePtr(x=-1,y=+0);
746     };
747     interpret KP_6+AnyOfOrNone(all) {
748         repeat= True;
749         action= MovePtr(x=+1,y=+0);
750     };
751     interpret KP_Right+AnyOfOrNone(all) {
752         repeat= True;
753         action= MovePtr(x=+1,y=+0);
754     };
755     interpret KP_7+AnyOfOrNone(all) {
756         repeat= True;
757         action= MovePtr(x=-1,y=-1);
758     };
759     interpret KP_Home+AnyOfOrNone(all) {
760         repeat= True;
761         action= MovePtr(x=-1,y=-1);
762     };
763     interpret KP_8+AnyOfOrNone(all) {
764         repeat= True;
765         action= MovePtr(x=+0,y=-1);
766     };
767     interpret KP_Up+AnyOfOrNone(all) {
768         repeat= True;
769         action= MovePtr(x=+0,y=-1);
770     };
771     interpret KP_9+AnyOfOrNone(all) {
772         repeat= True;
773         action= MovePtr(x=+1,y=-1);
774     };
775     interpret KP_Prior+AnyOfOrNone(all) {
776         repeat= True;
777         action= MovePtr(x=+1,y=-1);
778     };
779     interpret KP_5+AnyOfOrNone(all) {
780         repeat= True;
781         action= PtrBtn(button=default);
782     };
783     interpret KP_Begin+AnyOfOrNone(all) {
784         repeat= True;
785         action= PtrBtn(button=default);
786     };
787     interpret KP_F2+AnyOfOrNone(all) {
788         repeat= True;
789         action= SetPtrDflt(affect=button,button=1);
790     };
791     interpret KP_Divide+AnyOfOrNone(all) {
792         repeat= True;
793         action= SetPtrDflt(affect=button,button=1);
794     };
795     interpret KP_F3+AnyOfOrNone(all) {
796         repeat= True;
797         action= SetPtrDflt(affect=button,button=2);
798     };
799     interpret KP_Multiply+AnyOfOrNone(all) {
800         repeat= True;
801         action= SetPtrDflt(affect=button,button=2);
802     };
803     interpret KP_F4+AnyOfOrNone(all) {
804         repeat= True;
805         action= SetPtrDflt(affect=button,button=3);
806     };
807     interpret KP_Subtract+AnyOfOrNone(all) {
808         repeat= True;
809         action= SetPtrDflt(affect=button,button=3);
810     };
811     interpret KP_Separator+AnyOfOrNone(all) {
812         repeat= True;
813         action= PtrBtn(button=default,count=2);
814     };
815     interpret KP_Add+AnyOfOrNone(all) {
816         repeat= True;
817         action= PtrBtn(button=default,count=2);
818     };
819     interpret KP_0+AnyOfOrNone(all) {
820         repeat= True;
821         action= LockPtrBtn(button=default,affect=lock);
822     };
823     interpret KP_Insert+AnyOfOrNone(all) {
824         repeat= True;
825         action= LockPtrBtn(button=default,affect=lock);
826     };
827     interpret KP_Decimal+AnyOfOrNone(all) {
828         repeat= True;
829         action= LockPtrBtn(button=default,affect=unlock);
830     };
831     interpret KP_Delete+AnyOfOrNone(all) {
832         repeat= True;
833         action= LockPtrBtn(button=default,affect=unlock);
834     };
835     interpret F25+AnyOfOrNone(all) {
836         repeat= True;
837         action= SetPtrDflt(affect=button,button=1);
838     };
839     interpret F26+AnyOfOrNone(all) {
840         repeat= True;
841         action= SetPtrDflt(affect=button,button=2);
842     };
843     interpret F27+AnyOfOrNone(all) {
844         repeat= True;
845         action= MovePtr(x=-1,y=-1);
846     };
847     interpret F29+AnyOfOrNone(all) {
848         repeat= True;
849         action= MovePtr(x=+1,y=-1);
850     };
851     interpret F31+AnyOfOrNone(all) {
852         repeat= True;
853         action= PtrBtn(button=default);
854     };
855     interpret F33+AnyOfOrNone(all) {
856         repeat= True;
857         action= MovePtr(x=-1,y=+1);
858     };
859     interpret F35+AnyOfOrNone(all) {
860         repeat= True;
861         action= MovePtr(x=+1,y=+1);
862     };
863     interpret Pointer_Button_Dflt+AnyOfOrNone(all) {
864         action= PtrBtn(button=default);
865     };
866     interpret Pointer_Button1+AnyOfOrNone(all) {
867         action= PtrBtn(button=1);
868     };
869     interpret Pointer_Button2+AnyOfOrNone(all) {
870         action= PtrBtn(button=2);
871     };
872     interpret Pointer_Button3+AnyOfOrNone(all) {
873         action= PtrBtn(button=3);
874     };
875     interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) {
876         action= PtrBtn(button=default,count=2);
877     };
878     interpret Pointer_DblClick1+AnyOfOrNone(all) {
879         action= PtrBtn(button=1,count=2);
880     };
881     interpret Pointer_DblClick2+AnyOfOrNone(all) {
882         action= PtrBtn(button=2,count=2);
883     };
884     interpret Pointer_DblClick3+AnyOfOrNone(all) {
885         action= PtrBtn(button=3,count=2);
886     };
887     interpret Pointer_Drag_Dflt+AnyOfOrNone(all) {
888         action= LockPtrBtn(button=default,affect=both);
889     };
890     interpret Pointer_Drag1+AnyOfOrNone(all) {
891         action= LockPtrBtn(button=1,affect=both);
892     };
893     interpret Pointer_Drag2+AnyOfOrNone(all) {
894         action= LockPtrBtn(button=2,affect=both);
895     };
896     interpret Pointer_Drag3+AnyOfOrNone(all) {
897         action= LockPtrBtn(button=3,affect=both);
898     };
899     interpret Pointer_EnableKeys+AnyOfOrNone(all) {
900         action= LockControls(controls=MouseKeys);
901     };
902     interpret Pointer_Accelerate+AnyOfOrNone(all) {
903         action= LockControls(controls=MouseKeysAccel);
904     };
905     interpret Pointer_DfltBtnNext+AnyOfOrNone(all) {
906         action= SetPtrDflt(affect=button,button=+1);
907     };
908     interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) {
909         action= SetPtrDflt(affect=button,button=-1);
910     };
911     interpret AccessX_Enable+AnyOfOrNone(all) {
912         action= LockControls(controls=AccessXKeys);
913     };
914     interpret AccessX_Feedback_Enable+AnyOfOrNone(all) {
915         action= LockControls(controls=AccessXFeedback);
916     };
917     interpret RepeatKeys_Enable+AnyOfOrNone(all) {
918         action= LockControls(controls=RepeatKeys);
919     };
920     interpret SlowKeys_Enable+AnyOfOrNone(all) {
921         action= LockControls(controls=SlowKeys);
922     };
923     interpret BounceKeys_Enable+AnyOfOrNone(all) {
924         action= LockControls(controls=BounceKeys);
925     };
926     interpret StickyKeys_Enable+AnyOfOrNone(all) {
927         action= LockControls(controls=StickyKeys);
928     };
929     interpret MouseKeys_Enable+AnyOfOrNone(all) {
930         action= LockControls(controls=MouseKeys);
931     };
932     interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) {
933         action= LockControls(controls=MouseKeysAccel);
934     };
935     interpret Overlay1_Enable+AnyOfOrNone(all) {
936         action= LockControls(controls=Overlay1);
937     };
938     interpret Overlay2_Enable+AnyOfOrNone(all) {
939         action= LockControls(controls=Overlay2);
940     };
941     interpret AudibleBell_Enable+AnyOfOrNone(all) {
942         action= LockControls(controls=AudibleBell);
943     };
944     interpret Terminate_Server+AnyOfOrNone(all) {
945         action= Terminate();
946     };
947     interpret Alt_L+AnyOfOrNone(all) {
948         action= SetMods(modifiers=Alt,clearLocks);
949     };
950     interpret Alt_R+AnyOfOrNone(all) {
951         action= SetMods(modifiers=Alt,clearLocks);
952     };
953     interpret Meta_L+AnyOfOrNone(all) {
954         action= SetMods(modifiers=Meta,clearLocks);
955     };
956     interpret Meta_R+AnyOfOrNone(all) {
957         action= SetMods(modifiers=Meta,clearLocks);
958     };
959     interpret Super_L+AnyOfOrNone(all) {
960         action= SetMods(modifiers=Super,clearLocks);
961     };
962     interpret Super_R+AnyOfOrNone(all) {
963         action= SetMods(modifiers=Super,clearLocks);
964     };
965     interpret Hyper_L+AnyOfOrNone(all) {
966         action= SetMods(modifiers=Hyper,clearLocks);
967     };
968     interpret Hyper_R+AnyOfOrNone(all) {
969         action= SetMods(modifiers=Hyper,clearLocks);
970     };
971     interpret Shift_L+AnyOfOrNone(all) {
972         action= SetMods(modifiers=Shift,clearLocks);
973     };
974     interpret XF86Switch_VT_1+AnyOfOrNone(all) {
975         repeat= True;
976         action= SwitchScreen(screen=1,!same);
977     };
978     interpret XF86Switch_VT_2+AnyOfOrNone(all) {
979         repeat= True;
980         action= SwitchScreen(screen=2,!same);
981     };
982     interpret XF86Switch_VT_3+AnyOfOrNone(all) {
983         repeat= True;
984         action= SwitchScreen(screen=3,!same);
985     };
986     interpret XF86Switch_VT_4+AnyOfOrNone(all) {
987         repeat= True;
988         action= SwitchScreen(screen=4,!same);
989     };
990     interpret XF86Switch_VT_5+AnyOfOrNone(all) {
991         repeat= True;
992         action= SwitchScreen(screen=5,!same);
993     };
994     interpret XF86Switch_VT_6+AnyOfOrNone(all) {
995         repeat= True;
996         action= SwitchScreen(screen=6,!same);
997     };
998     interpret XF86Switch_VT_7+AnyOfOrNone(all) {
999         repeat= True;
1000         action= SwitchScreen(screen=7,!same);
1001     };
1002     interpret XF86Switch_VT_8+AnyOfOrNone(all) {
1003         repeat= True;
1004         action= SwitchScreen(screen=8,!same);
1005     };
1006     interpret XF86Switch_VT_9+AnyOfOrNone(all) {
1007         repeat= True;
1008         action= SwitchScreen(screen=9,!same);
1009     };
1010     interpret XF86Switch_VT_10+AnyOfOrNone(all) {
1011         repeat= True;
1012         action= SwitchScreen(screen=10,!same);
1013     };
1014     interpret XF86Switch_VT_11+AnyOfOrNone(all) {
1015         repeat= True;
1016         action= SwitchScreen(screen=11,!same);
1017     };
1018     interpret XF86Switch_VT_12+AnyOfOrNone(all) {
1019         repeat= True;
1020         action= SwitchScreen(screen=12,!same);
1021     };
1022     interpret XF86LogGrabInfo+AnyOfOrNone(all) {
1023         repeat= True;
1024         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);
1025     };
1026     interpret XF86LogWindowTree+AnyOfOrNone(all) {
1027         repeat= True;
1028         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);
1029     };
1030     interpret XF86Next_VMode+AnyOfOrNone(all) {
1031         repeat= True;
1032         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);
1033     };
1034     interpret XF86Prev_VMode+AnyOfOrNone(all) {
1035         repeat= True;
1036         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);
1037     };
1038     interpret ISO_Level5_Shift+AnyOfOrNone(all) {
1039         action= SetMods(modifiers=LevelFive,clearLocks);
1040     };
1041     interpret ISO_Level5_Latch+AnyOfOrNone(all) {
1042         action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
1043     };
1044     interpret ISO_Level5_Lock+AnyOfOrNone(all) {
1045         action= LockMods(modifiers=LevelFive);
1046     };
1047     interpret Caps_Lock+AnyOfOrNone(all) {
1048         action= LockMods(modifiers=Lock);
1049     };
1050     interpret Any+Exactly(Lock) {
1051         action= LockMods(modifiers=Lock);
1052     };
1053     interpret Any+AnyOf(all) {
1054         action= SetMods(modifiers=modMapMods,clearLocks);
1055     };
1056     indicator "Caps Lock" {
1057         !allowExplicit;
1058         whichModState= locked;
1059         modifiers= Lock;
1060     };
1061     indicator "Num Lock" {
1062         !allowExplicit;
1063         whichModState= locked;
1064         modifiers= NumLock;
1065     };
1066     indicator "Scroll Lock" {
1067         whichModState= locked;
1068         modifiers= ScrollLock;
1069     };
1070     indicator "Shift Lock" {
1071         !allowExplicit;
1072         whichModState= locked;
1073         modifiers= Shift;
1074     };
1075     indicator "Group 2" {
1076         !allowExplicit;
1077         groups= 0xfe;
1078     };
1079     indicator "Mouse Keys" {
1080         indicatorDrivesKeyboard;
1081         controls= mouseKeys;
1082     };
1083 };
1084
1085 xkb_symbols "pc+us+inet(evdev)+ctrl(nocaps)+compose(rwin)+terminate(ctrl_alt_bksp)" {
1086
1087     name[group1]="English (US)";
1088
1089     key  <ESC> {         [          Escape ] };
1090     key <AE01> {         [               1,          exclam ] };
1091     key <AE02> {         [               2,              at ] };
1092     key <AE03> {         [               3,      numbersign ] };
1093     key <AE04> {         [               4,          dollar ] };
1094     key <AE05> {         [               5,         percent ] };
1095     key <AE06> {         [               6,     asciicircum ] };
1096     key <AE07> {         [               7,       ampersand ] };
1097     key <AE08> {         [               8,        asterisk ] };
1098     key <AE09> {         [               9,       parenleft ] };
1099     key <AE10> {         [               0,      parenright ] };
1100     key <AE11> {         [           minus,      underscore ] };
1101     key <AE12> {         [           equal,            plus ] };
1102     key <BKSP> {
1103         type= "CTRL+ALT",
1104         symbols[Group1]= [       BackSpace,       BackSpace,        NoSymbol,        NoSymbol, Terminate_Server ]
1105         SYNTAX ERROR
1106     };
1107     key  <TAB> {         [             Tab,    ISO_Left_Tab ] };
1108     key <AD01> {
1109         type= "ALPHABETIC",
1110         symbols[Group1]= [               q,               Q ]
1111     };
1112     key <AD02> {
1113         type= "ALPHABETIC",
1114         symbols[Group1]= [               w,               W ]
1115     };
1116     key <AD03> {
1117         type= "ALPHABETIC",
1118         symbols[Group1]= [               e,               E ]
1119     };
1120     key <AD04> {
1121         type= "ALPHABETIC",
1122         symbols[Group1]= [               r,               R ]
1123     };
1124     key <AD05> {
1125         type= "ALPHABETIC",
1126         symbols[Group1]= [               t,               T ]
1127     };
1128     key <AD06> {
1129         type= "ALPHABETIC",
1130         symbols[Group1]= [               y,               Y ]
1131     };
1132     key <AD07> {
1133         type= "ALPHABETIC",
1134         symbols[Group1]= [               u,               U ]
1135     };
1136     key <AD08> {
1137         type= "ALPHABETIC",
1138         symbols[Group1]= [               i,               I ]
1139     };
1140     key <AD09> {
1141         type= "ALPHABETIC",
1142         symbols[Group1]= [               o,               O ]
1143     };
1144     key <AD10> {
1145         type= "ALPHABETIC",
1146         symbols[Group1]= [               p,               P ]
1147     };
1148     key <AD11> {         [     bracketleft,       braceleft ] };
1149     key <AD12> {         [    bracketright,      braceright ] };
1150     key <RTRN> {         [          Return ] };
1151     key <LCTL> {         [       Control_L ] };
1152     key <AC01> {
1153         type= "ALPHABETIC",
1154         symbols[Group1]= [               a,               A ]
1155     };
1156     key <AC02> {
1157         type= "ALPHABETIC",
1158         symbols[Group1]= [               s,               S ]
1159     };
1160     key <AC03> {
1161         type= "ALPHABETIC",
1162         symbols[Group1]= [               d,               D ]
1163     };
1164     key <AC04> {
1165         type= "ALPHABETIC",
1166         symbols[Group1]= [               f,               F ]
1167     };
1168     key <AC05> {
1169         type= "ALPHABETIC",
1170         symbols[Group1]= [               g,               G ]
1171     };
1172     key <AC06> {
1173         type= "ALPHABETIC",
1174         symbols[Group1]= [               h,               H ]
1175     };
1176     key <AC07> {
1177         type= "ALPHABETIC",
1178         symbols[Group1]= [               j,               J ]
1179     };
1180     key <AC08> {
1181         type= "ALPHABETIC",
1182         symbols[Group1]= [               k,               K ]
1183     };
1184     key <AC09> {
1185         type= "ALPHABETIC",
1186         symbols[Group1]= [               l,               L ]
1187     };
1188     key <AC10> {         [       semicolon,           colon ] };
1189     key <AC11> {         [      apostrophe,        quotedbl ] };
1190     key <TLDE> {         [           grave,      asciitilde ] };
1191     key <LFSH> {         [         Shift_L ] };
1192     key <BKSL> {         [       backslash,             bar ] };
1193     key <AB01> {
1194         type= "ALPHABETIC",
1195         symbols[Group1]= [               z,               Z ]
1196     };
1197     key <AB02> {
1198         type= "ALPHABETIC",
1199         symbols[Group1]= [               x,               X ]
1200     };
1201     key <AB03> {
1202         type= "ALPHABETIC",
1203         symbols[Group1]= [               c,               C ]
1204     };
1205     key <AB04> {
1206         type= "ALPHABETIC",
1207         symbols[Group1]= [               v,               V ]
1208     };
1209     key <AB05> {
1210         type= "ALPHABETIC",
1211         symbols[Group1]= [               b,               B ]
1212     };
1213     key <AB06> {
1214         type= "ALPHABETIC",
1215         symbols[Group1]= [               n,               N ]
1216     };
1217     key <AB07> {
1218         type= "ALPHABETIC",
1219         symbols[Group1]= [               m,               M ]
1220     };
1221     key <AB08> {         [           comma,            less ] };
1222     key <AB09> {         [          period,         greater ] };
1223     key <AB10> {         [           slash,        question ] };
1224     key <RTSH> {         [         Shift_R ] };
1225     key <KPMU> {
1226         type= "CTRL+ALT",
1227         symbols[Group1]= [     KP_Multiply,     KP_Multiply,     KP_Multiply,     KP_Multiply,   XF86ClearGrab ]
1228     };
1229     key <LALT> {         [           Alt_L,          Meta_L ] };
1230     key <SPCE> {         [           space ] };
1231     key <CAPS> {         [       Control_L,       Control_L ] };
1232     key <FK01> {
1233         type= "CTRL+ALT",
1234         symbols[Group1]= [              F1,              F1,              F1,              F1, XF86Switch_VT_1 ]
1235     };
1236     key <FK02> {
1237         type= "CTRL+ALT",
1238         symbols[Group1]= [              F2,              F2,              F2,              F2, XF86Switch_VT_2 ]
1239     };
1240     key <FK03> {
1241         type= "CTRL+ALT",
1242         symbols[Group1]= [              F3,              F3,              F3,              F3, XF86Switch_VT_3 ]
1243     };
1244     key <FK04> {
1245         type= "CTRL+ALT",
1246         symbols[Group1]= [              F4,              F4,              F4,              F4, XF86Switch_VT_4 ]
1247     };
1248     key <FK05> {
1249         type= "CTRL+ALT",
1250         symbols[Group1]= [              F5,              F5,              F5,              F5, XF86Switch_VT_5 ]
1251     };
1252     key <FK06> {
1253         type= "CTRL+ALT",
1254         symbols[Group1]= [              F6,              F6,              F6,              F6, XF86Switch_VT_6 ]
1255     };
1256     key <FK07> {
1257         type= "CTRL+ALT",
1258         symbols[Group1]= [              F7,              F7,              F7,              F7, XF86Switch_VT_7 ]
1259     };
1260     key <FK08> {
1261         type= "CTRL+ALT",
1262         symbols[Group1]= [              F8,              F8,              F8,              F8, XF86Switch_VT_8 ]
1263     };
1264     key <FK09> {
1265         type= "CTRL+ALT",
1266         symbols[Group1]= [              F9,              F9,              F9,              F9, XF86Switch_VT_9 ]
1267     };
1268     key <FK10> {
1269         type= "CTRL+ALT",
1270         symbols[Group1]= [             F10,             F10,             F10,             F10, XF86Switch_VT_10 ]
1271     };
1272     key <NMLK> {         [        Num_Lock ] };
1273     key <SCLK> {         [     Scroll_Lock ] };
1274     key  <KP7> {         [         KP_Home,            KP_7 ] };
1275     key  <KP8> {         [           KP_Up,            KP_8 ] };
1276     key  <KP9> {         [        KP_Prior,            KP_9 ] };
1277     key <KPSU> {
1278         type= "CTRL+ALT",
1279         symbols[Group1]= [     KP_Subtract,     KP_Subtract,     KP_Subtract,     KP_Subtract,  XF86Prev_VMode ]
1280     };
1281     key  <KP4> {         [         KP_Left,            KP_4 ] };
1282     key  <KP5> {         [        KP_Begin,            KP_5 ] };
1283     key  <KP6> {         [        KP_Right,            KP_6 ] };
1284     key <KPAD> {
1285         type= "CTRL+ALT",
1286         symbols[Group1]= [          KP_Add,          KP_Add,          KP_Add,          KP_Add,  XF86Next_VMode ]
1287     };
1288     key  <KP1> {         [          KP_End,            KP_1 ] };
1289     key  <KP2> {         [         KP_Down,            KP_2 ] };
1290     key  <KP3> {         [         KP_Next,            KP_3 ] };
1291     key  <KP0> {         [       KP_Insert,            KP_0 ] };
1292     key <KPDL> {         [       KP_Delete,      KP_Decimal ] };
1293     key <LVL3> {         [ ISO_Level3_Shift ] };
1294     key <LSGT> {
1295         type= "FOUR_LEVEL",
1296         symbols[Group1]= [            less,         greater,             bar,       brokenbar ]
1297     };
1298     key <FK11> {
1299         type= "CTRL+ALT",
1300         symbols[Group1]= [             F11,             F11,             F11,             F11, XF86Switch_VT_11 ]
1301     };
1302     key <FK12> {
1303         type= "CTRL+ALT",
1304         symbols[Group1]= [             F12,             F12,             F12,             F12, XF86Switch_VT_12 ]
1305     };
1306     key <KATA> {         [        Katakana ] };
1307     key <HIRA> {         [        Hiragana ] };
1308     key <HENK> {         [     Henkan_Mode ] };
1309     key <HKTG> {         [ Hiragana_Katakana ] };
1310     key <MUHE> {         [        Muhenkan ] };
1311     key <KPEN> {         [        KP_Enter ] };
1312     key <RCTL> {         [       Control_R ] };
1313     key <KPDV> {
1314         type= "CTRL+ALT",
1315         symbols[Group1]= [       KP_Divide,       KP_Divide,       KP_Divide,       KP_Divide,      XF86Ungrab ]
1316     };
1317     key <PRSC> {
1318         type= "PC_ALT_LEVEL2",
1319         symbols[Group1]= [           Print,         Sys_Req ]
1320     };
1321     key <RALT> {
1322         type= "TWO_LEVEL",
1323         symbols[Group1]= [           Alt_R,          Meta_R ]
1324     };
1325     key <LNFD> {         [        Linefeed ] };
1326     key <HOME> {         [            Home ] };
1327     key   <UP> {         [              Up ] };
1328     key <PGUP> {         [           Prior ] };
1329     key <LEFT> {         [            Left ] };
1330     key <RGHT> {         [           Right ] };
1331     key  <END> {         [             End ] };
1332     key <DOWN> {         [            Down ] };
1333     key <PGDN> {         [            Next ] };
1334     key  <INS> {         [          Insert ] };
1335     key <DELE> {         [          Delete ] };
1336     key <MUTE> {         [   XF86AudioMute ] };
1337     key <VOL-> {         [ XF86AudioLowerVolume ] };
1338     key <VOL+> {         [ XF86AudioRaiseVolume ] };
1339     key <POWR> {         [    XF86PowerOff ] };
1340     key <KPEQ> {         [        KP_Equal ] };
1341     key <I126> {         [       plusminus ] };
1342     key <PAUS> {
1343         type= "PC_CONTROL_LEVEL2",
1344         symbols[Group1]= [           Pause,           Break ]
1345     };
1346     key <I128> {         [     XF86LaunchA ] };
1347     key <I129> {         [      KP_Decimal,      KP_Decimal ] };
1348     key <HNGL> {         [          Hangul ] };
1349     key <HJCV> {         [    Hangul_Hanja ] };
1350     key <LWIN> {         [         Super_L ] };
1351     key <RWIN> {
1352         type= "TWO_LEVEL",
1353         symbols[Group1]= [       Multi_key,       Multi_key ]
1354     };
1355     key <COMP> {         [            Menu ] };
1356     key <STOP> {         [          Cancel ] };
1357     key <AGAI> {         [            Redo ] };
1358     key <PROP> {         [        SunProps ] };
1359     key <UNDO> {         [            Undo ] };
1360     key <FRNT> {         [        SunFront ] };
1361     key <COPY> {         [        XF86Copy ] };
1362     key <OPEN> {         [         SunOpen ] };
1363     key <PAST> {         [       XF86Paste ] };
1364     key <FIND> {         [            Find ] };
1365     key  <CUT> {         [         XF86Cut ] };
1366     key <HELP> {         [            Help ] };
1367     key <I147> {         [      XF86MenuKB ] };
1368     key <I148> {         [  XF86Calculator ] };
1369     key <I150> {         [       XF86Sleep ] };
1370     key <I151> {         [      XF86WakeUp ] };
1371     key <I152> {         [    XF86Explorer ] };
1372     key <I153> {         [        XF86Send ] };
1373     key <I155> {         [        XF86Xfer ] };
1374     key <I156> {         [     XF86Launch1 ] };
1375     key <I157> {         [     XF86Launch2 ] };
1376     key <I158> {         [         XF86WWW ] };
1377     key <I159> {         [         XF86DOS ] };
1378     key <I160> {         [ XF86ScreenSaver ] };
1379     key <I162> {         [ XF86RotateWindows ] };
1380     key <I163> {         [        XF86Mail ] };
1381     key <I164> {         [   XF86Favorites ] };
1382     key <I165> {         [  XF86MyComputer ] };
1383     key <I166> {         [        XF86Back ] };
1384     key <I167> {         [     XF86Forward ] };
1385     key <I169> {         [       XF86Eject ] };
1386     key <I170> {         [       XF86Eject,       XF86Eject ] };
1387     key <I171> {         [   XF86AudioNext ] };
1388     key <I172> {         [   XF86AudioPlay,  XF86AudioPause ] };
1389     key <I173> {         [   XF86AudioPrev ] };
1390     key <I174> {         [   XF86AudioStop,       XF86Eject ] };
1391     key <I175> {         [ XF86AudioRecord ] };
1392     key <I176> {         [ XF86AudioRewind ] };
1393     key <I177> {         [       XF86Phone ] };
1394     key <I179> {         [       XF86Tools ] };
1395     key <I180> {         [    XF86HomePage ] };
1396     key <I181> {         [      XF86Reload ] };
1397     key <I182> {         [       XF86Close ] };
1398     key <I185> {         [    XF86ScrollUp ] };
1399     key <I186> {         [  XF86ScrollDown ] };
1400     key <I187> {         [       parenleft ] };
1401     key <I188> {         [      parenright ] };
1402     key <I189> {         [         XF86New ] };
1403     key <I190> {         [            Redo ] };
1404     key <FK13> {         [       XF86Tools ] };
1405     key <FK14> {         [     XF86Launch5 ] };
1406     key <FK15> {         [     XF86Launch6 ] };
1407     key <FK16> {         [     XF86Launch7 ] };
1408     key <FK17> {         [     XF86Launch8 ] };
1409     key <FK18> {         [     XF86Launch9 ] };
1410     key <FK21> {         [ XF86TouchpadToggle ] };
1411     key <FK22> {         [  XF86TouchpadOn ] };
1412     key <FK23> {         [ XF86TouchpadOff ] };
1413     key <MDSW> {         [     Mode_switch ] };
1414     key  <ALT> {         [        NoSymbol,           Alt_L ] };
1415     key <META> {         [        NoSymbol,          Meta_L ] };
1416     key <SUPR> {         [        NoSymbol,         Super_L ] };
1417     key <HYPR> {         [        NoSymbol,         Hyper_L ] };
1418     key <I208> {         [   XF86AudioPlay ] };
1419     key <I209> {         [  XF86AudioPause ] };
1420     key <I210> {         [     XF86Launch3 ] };
1421     key <I211> {         [     XF86Launch4 ] };
1422     key <I212> {         [     XF86LaunchB ] };
1423     key <I213> {         [     XF86Suspend ] };
1424     key <I214> {         [       XF86Close ] };
1425     key <I215> {         [   XF86AudioPlay ] };
1426     key <I216> {         [ XF86AudioForward ] };
1427     key <I218> {         [           Print ] };
1428     key <I220> {         [      XF86WebCam ] };
1429     key <I223> {         [        XF86Mail ] };
1430     key <I224> {         [   XF86Messenger ] };
1431     key <I225> {         [      XF86Search ] };
1432     key <I226> {         [          XF86Go ] };
1433     key <I227> {         [     XF86Finance ] };
1434     key <I228> {         [        XF86Game ] };
1435     key <I229> {         [        XF86Shop ] };
1436     key <I231> {         [          Cancel ] };
1437     key <I232> {         [ XF86MonBrightnessDown ] };
1438     key <I233> {         [ XF86MonBrightnessUp ] };
1439     key <I234> {         [  XF86AudioMedia ] };
1440     key <I235> {         [     XF86Display ] };
1441     key <I236> {         [ XF86KbdLightOnOff ] };
1442     key <I237> {         [ XF86KbdBrightnessDown ] };
1443     key <I238> {         [ XF86KbdBrightnessUp ] };
1444     key <I239> {         [        XF86Send ] };
1445     key <I240> {         [       XF86Reply ] };
1446     key <I241> {         [ XF86MailForward ] };
1447     key <I242> {         [        XF86Save ] };
1448     key <I243> {         [   XF86Documents ] };
1449     key <I244> {         [     XF86Battery ] };
1450     key <I245> {         [   XF86Bluetooth ] };
1451     key <I246> {         [        XF86WLAN ] };
1452     modifier_map Control { <LCTL> };
1453     modifier_map Shift { <LFSH> };
1454     modifier_map Shift { <RTSH> };
1455     modifier_map Mod1 { <LALT> };
1456     modifier_map Control { <CAPS> };
1457     modifier_map Mod2 { <NMLK> };
1458     modifier_map Mod5 { <LVL3> };
1459     modifier_map Control { <RCTL> };
1460     modifier_map Mod1 { <RALT> };
1461     modifier_map Mod4 { <LWIN> };
1462     modifier_map Mod5 { <MDSW> };
1463     modifier_map Mod1 { <META> };
1464     modifier_map Mod4 { <SUPR> };
1465     modifier_map Mod4 { <HYPR> };
1466 };
1467
1468 xkb_geometry "pc(pc105)" {
1469
1470     width=       470;
1471     height=      180;
1472
1473     alias <AC00> = <CAPS>;
1474     alias <AA00> = <LCTL>;
1475
1476     baseColor=   "white";
1477     labelColor=  "black";
1478     xfont=       "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
1479     description= "Generic 105";
1480
1481     shape "NORM" {
1482         corner= 1,
1483         { [  18,  18 ] },
1484         { [   2,   1 ], [  16,  16 ] }
1485     };
1486     shape "BKSP" {
1487         corner= 1,
1488         { [  38,  18 ] },
1489         { [   2,   1 ], [  36,  16 ] }
1490     };
1491     shape "TABK" {
1492         corner= 1,
1493         { [  28,  18 ] },
1494         { [   2,   1 ], [  26,  16 ] }
1495     };
1496     shape "BKSL" {
1497         corner= 1,
1498         { [  28,  18 ] },
1499         { [   2,   1 ], [  26,  16 ] }
1500     };
1501     shape "RTRN" {
1502         corner= 1,
1503         { [   0,   0 ], [  28,   0 ], [  28,  37 ], [   5,  37 ],
1504           [   5,  18 ], [   0,  18 ] },
1505         { [   2,   1 ], [  26,   1 ], [  26,  35 ], [   7,  35 ],
1506           [   7,  16 ], [   2,  16 ] },
1507         approx= { [   5,   0 ], [  28,  37 ] }
1508     };
1509     shape "CAPS" {
1510         corner= 1,
1511         { [  33,  18 ] },
1512         { [   2,   1 ], [  31,  16 ] }
1513     };
1514     shape "LFSH" {
1515         corner= 1,
1516         { [  25,  18 ] },
1517         { [   2,   1 ], [  23,  16 ] }
1518     };
1519     shape "RTSH" {
1520         corner= 1,
1521         { [  50,  18 ] },
1522         { [   2,   1 ], [  48,  16 ] }
1523     };
1524     shape "MODK" {
1525         corner= 1,
1526         { [  27,  18 ] },
1527         { [   2,   1 ], [  25,  16 ] }
1528     };
1529     shape "SMOD" {
1530         corner= 1,
1531         { [  23,  18 ] },
1532         { [   2,   1 ], [  21,  16 ] }
1533     };
1534     shape "SPCE" {
1535         corner= 1,
1536         { [ 113,  18 ] },
1537         { [   2,   1 ], [ 111,  16 ] }
1538     };
1539     shape "KP0" {
1540         corner= 1,
1541         { [  37,  18 ] },
1542         { [   2,   1 ], [  35,  16 ] }
1543     };
1544     shape "KPAD" {
1545         corner= 1,
1546         { [  18,  37 ] },
1547         { [   2,   1 ], [  16,  35 ] }
1548     };
1549     shape "LEDS" { { [  75,  20 ] } };
1550     shape "LED" { { [   5,   1 ] } };
1551     section "Function" {
1552         key.color= "grey20";
1553         priority=  7;
1554         top=       22;
1555         left=      19;
1556         width=     351;
1557         height=    19;
1558         row {
1559             top=  1;
1560             left= 1;
1561             keys {
1562                 {  <ESC>, "NORM",   1 },
1563                 { <FK01>, "NORM",  20, color="white" },
1564                 { <FK02>, "NORM",   1, color="white" },
1565                 { <FK03>, "NORM",   1, color="white" },
1566                 { <FK04>, "NORM",   1, color="white" },
1567                 { <FK05>, "NORM",  11, color="white" },
1568                 { <FK06>, "NORM",   1, color="white" },
1569                 { <FK07>, "NORM",   1, color="white" },
1570                 { <FK08>, "NORM",   1, color="white" },
1571                 { <FK09>, "NORM",  11, color="white" },
1572                 { <FK10>, "NORM",   1, color="white" },
1573                 { <FK11>, "NORM",   1, color="white" },
1574                 { <FK12>, "NORM",   1, color="white" },
1575                 { <PRSC>, "NORM",   8, color="white" },
1576                 { <SCLK>, "NORM",   1, color="white" },
1577                 { <PAUS>, "NORM",   1, color="white" }
1578             };
1579         };
1580     }; // End of "Function" section
1581
1582     section "Alpha" {
1583         key.color= "white";
1584         priority=  8;
1585         top=       61;
1586         left=      19;
1587         width=     287;
1588         height=    95;
1589         row {
1590             top=  1;
1591             left= 1;
1592             keys {
1593                 { <TLDE>, "NORM",   1 }, { <AE01>, "NORM",   1 },
1594                 { <AE02>, "NORM",   1 }, { <AE03>, "NORM",   1 },
1595                 { <AE04>, "NORM",   1 }, { <AE05>, "NORM",   1 },
1596                 { <AE06>, "NORM",   1 }, { <AE07>, "NORM",   1 },
1597                 { <AE08>, "NORM",   1 }, { <AE09>, "NORM",   1 },
1598                 { <AE10>, "NORM",   1 }, { <AE11>, "NORM",   1 },
1599                 { <AE12>, "NORM",   1 },
1600                 { <BKSP>, "BKSP",   1, color="grey20" }
1601             };
1602         };
1603         row {
1604             top=  20;
1605             left= 1;
1606             keys {
1607                 {  <TAB>, "TABK",   1, color="grey20" },
1608                 { <AD01>, "NORM",   1 }, { <AD02>, "NORM",   1 },
1609                 { <AD03>, "NORM",   1 }, { <AD04>, "NORM",   1 },
1610                 { <AD05>, "NORM",   1 }, { <AD06>, "NORM",   1 },
1611                 { <AD07>, "NORM",   1 }, { <AD08>, "NORM",   1 },
1612                 { <AD09>, "NORM",   1 }, { <AD10>, "NORM",   1 },
1613                 { <AD11>, "NORM",   1 }, { <AD12>, "NORM",   1 },
1614                 { <RTRN>, "RTRN",   1, color="grey20" }
1615             };
1616         };
1617         row {
1618             top=  39;
1619             left= 1;
1620             keys {
1621                 { <CAPS>, "CAPS",   1, color="grey20" },
1622                 { <AC01>, "NORM",   1 }, { <AC02>, "NORM",   1 },
1623                 { <AC03>, "NORM",   1 }, { <AC04>, "NORM",   1 },
1624                 { <AC05>, "NORM",   1 }, { <AC06>, "NORM",   1 },
1625                 { <AC07>, "NORM",   1 }, { <AC08>, "NORM",   1 },
1626                 { <AC09>, "NORM",   1 }, { <AC10>, "NORM",   1 },
1627                 { <AC11>, "NORM",   1 }, { <BKSL>, "NORM",   1 }
1628             };
1629         };
1630         row {
1631             top=  58;
1632             left= 1;
1633             keys {
1634                 { <LFSH>, "LFSH",   1, color="grey20" },
1635                 { <LSGT>, "NORM",   1 }, { <AB01>, "NORM",   1 },
1636                 { <AB02>, "NORM",   1 }, { <AB03>, "NORM",   1 },
1637                 { <AB04>, "NORM",   1 }, { <AB05>, "NORM",   1 },
1638                 { <AB06>, "NORM",   1 }, { <AB07>, "NORM",   1 },
1639                 { <AB08>, "NORM",   1 }, { <AB09>, "NORM",   1 },
1640                 { <AB10>, "NORM",   1 },
1641                 { <RTSH>, "RTSH",   1, color="grey20" }
1642             };
1643         };
1644         row {
1645             top=  77;
1646             left= 1;
1647             keys {
1648                 { <LCTL>, "MODK",   1, color="grey20" },
1649                 { <LWIN>, "SMOD",   1, color="grey20" },
1650                 { <LALT>, "SMOD",   1, color="grey20" },
1651                 { <SPCE>, "SPCE",   1 },
1652                 { <RALT>, "SMOD",   1, color="grey20" },
1653                 { <RWIN>, "SMOD",   1, color="grey20" },
1654                 { <MENU>, "SMOD",   1, color="grey20" },
1655                 { <RCTL>, "SMOD",   1, color="grey20" }
1656             };
1657         };
1658     }; // End of "Alpha" section
1659
1660     section "Editing" {
1661         key.color= "grey20";
1662         priority=  9;
1663         top=       61;
1664         left=      312;
1665         width=     58;
1666         height=    95;
1667         row {
1668             top=  1;
1669             left= 1;
1670             keys {
1671                 {  <INS>, "NORM",   1 }, { <HOME>, "NORM",   1 },
1672                 { <PGUP>, "NORM",   1 }
1673             };
1674         };
1675         row {
1676             top=  20;
1677             left= 1;
1678             keys {
1679                 { <DELE>, "NORM",   1 }, {  <END>, "NORM",   1 },
1680                 { <PGDN>, "NORM",   1 }
1681             };
1682         };
1683         row {
1684             top=  58;
1685             left= 20;
1686             keys {
1687                 {   <UP>, "NORM",   1 }
1688             };
1689         };
1690         row {
1691             top=  77;
1692             left= 1;
1693             keys {
1694                 { <LEFT>, "NORM",   1 }, { <DOWN>, "NORM",   1 },
1695                 { <RGHT>, "NORM",   1 }
1696             };
1697         };
1698     }; // End of "Editing" section
1699
1700     section "Keypad" {
1701         key.color= "grey20";
1702         priority=  10;
1703         top=       61;
1704         left=      376;
1705         width=     77;
1706         height=    95;
1707         row {
1708             top=  1;
1709             left= 1;
1710             keys {
1711                 { <NMLK>, "NORM",   1 }, { <KPDV>, "NORM",   1 },
1712                 { <KPMU>, "NORM",   1 }, { <KPSU>, "NORM",   1 }
1713             };
1714         };
1715         row {
1716             top=  20;
1717             left= 1;
1718             keys {
1719                 {  <KP7>, "NORM",   1, color="white" },
1720                 {  <KP8>, "NORM",   1, color="white" },
1721                 {  <KP9>, "NORM",   1, color="white" },
1722                 { <KPAD>, "KPAD",   1 }
1723             };
1724         };
1725         row {
1726             top=  39;
1727             left= 1;
1728             keys {
1729                 {  <KP4>, "NORM",   1, color="white" },
1730                 {  <KP5>, "NORM",   1, color="white" },
1731                 {  <KP6>, "NORM",   1, color="white" }
1732             };
1733         };
1734         row {
1735             top=  58;
1736             left= 1;
1737             keys {
1738                 {  <KP1>, "NORM",   1, color="white" },
1739                 {  <KP2>, "NORM",   1, color="white" },
1740                 {  <KP3>, "NORM",   1, color="white" },
1741                 { <KPEN>, "KPAD",   1 }
1742             };
1743         };
1744         row {
1745             top=  77;
1746             left= 1;
1747             keys {
1748                 {  <KP0>, "KP0",   1, color="white" },
1749                 { <KPDL>, "NORM",   1, color="white" }
1750             };
1751         };
1752     }; // End of "Keypad" section
1753
1754     solid "LedPanel" {
1755         top=      22;
1756         left=     377;
1757         priority= 0;
1758         color= "grey10";
1759         shape= "LEDS";
1760     };
1761     indicator "Num Lock" {
1762         top=      37;
1763         left=     382;
1764         priority= 1;
1765         onColor= "green";
1766         offColor= "green30";
1767         shape= "LED";
1768     };
1769     indicator "Caps Lock" {
1770         top=      37;
1771         left=     407;
1772         priority= 2;
1773         onColor= "green";
1774         offColor= "green30";
1775         shape= "LED";
1776     };
1777     indicator "Scroll Lock" {
1778         top=      37;
1779         left=     433;
1780         priority= 3;
1781         onColor= "green";
1782         offColor= "green30";
1783         shape= "LED";
1784     };
1785     text "NumLockLabel" {
1786         top=      25;
1787         left=     378;
1788         priority= 4;
1789         width=  19.8;
1790         height=  10;
1791         XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
1792         text=  "Num\nLock";
1793     };
1794     text "CapsLockLabel" {
1795         top=      25;
1796         left=     403;
1797         priority= 5;
1798         width=  26.4;
1799         height=  10;
1800         XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
1801         text=  "Caps\nLock";
1802     };
1803     text "ScrollLockLabel" {
1804         top=      25;
1805         left=     428;
1806         priority= 6;
1807         width=  39.6;
1808         height=  10;
1809         XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
1810         text=  "Scroll\nLock";
1811     };
1812 };
1813
1814 };