1xkb_keymap {
2xkb_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
298xkb_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
595xkb_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
1085xkb_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    };
1106    key  <TAB> {         [             Tab,    ISO_Left_Tab ] };
1107    key <AD01> {
1108        type= "ALPHABETIC",
1109        symbols[Group1]= [               q,               Q ]
1110    };
1111    key <AD02> {
1112        type= "ALPHABETIC",
1113        symbols[Group1]= [               w,               W ]
1114    };
1115    key <AD03> {
1116        type= "ALPHABETIC",
1117        symbols[Group1]= [               e,               E ]
1118    };
1119    key <AD04> {
1120        type= "ALPHABETIC",
1121        symbols[Group1]= [               r,               R ]
1122    };
1123    key <AD05> {
1124        type= "ALPHABETIC",
1125        symbols[Group1]= [               t,               T ]
1126    };
1127    key <AD06> {
1128        type= "ALPHABETIC",
1129        symbols[Group1]= [               y,               Y ]
1130    };
1131    key <AD07> {
1132        type= "ALPHABETIC",
1133        symbols[Group1]= [               u,               U ]
1134    };
1135    key <AD08> {
1136        type= "ALPHABETIC",
1137        symbols[Group1]= [               i,               I ]
1138    };
1139    key <AD09> {
1140        type= "ALPHABETIC",
1141        symbols[Group1]= [               o,               O ]
1142    };
1143    key <AD10> {
1144        type= "ALPHABETIC",
1145        symbols[Group1]= [               p,               P ]
1146    };
1147    key <AD11> {         [     bracketleft,       braceleft ] };
1148    key <AD12> {         [    bracketright,      braceright ] };
1149    key <RTRN> {         [          Return ] };
1150    key <LCTL> {         [       Control_L ] };
1151    key <AC01> {
1152        type= "ALPHABETIC",
1153        symbols[Group1]= [               a,               A ]
1154    };
1155    key <AC02> {
1156        type= "ALPHABETIC",
1157        symbols[Group1]= [               s,               S ]
1158    };
1159    key <AC03> {
1160        type= "ALPHABETIC",
1161        symbols[Group1]= [               d,               D ]
1162    };
1163    key <AC04> {
1164        type= "ALPHABETIC",
1165        symbols[Group1]= [               f,               F ]
1166    };
1167    key <AC05> {
1168        type= "ALPHABETIC",
1169        symbols[Group1]= [               g,               G ]
1170    };
1171    key <AC06> {
1172        type= "ALPHABETIC",
1173        symbols[Group1]= [               h,               H ]
1174    };
1175    key <AC07> {
1176        type= "ALPHABETIC",
1177        symbols[Group1]= [               j,               J ]
1178    };
1179    key <AC08> {
1180        type= "ALPHABETIC",
1181        symbols[Group1]= [               k,               K ]
1182    };
1183    key <AC09> {
1184        type= "ALPHABETIC",
1185        symbols[Group1]= [               l,               L ]
1186    };
1187    key <AC10> {         [       semicolon,           colon ] };
1188    key <AC11> {         [      apostrophe,        quotedbl ] };
1189    key <TLDE> {         [           grave,      asciitilde ] };
1190    key <LFSH> {         [         Shift_L ] };
1191    key <BKSL> {         [       backslash,             bar ] };
1192    key <AB01> {
1193        type= "ALPHABETIC",
1194        symbols[Group1]= [               z,               Z ]
1195    };
1196    key <AB02> {
1197        type= "ALPHABETIC",
1198        symbols[Group1]= [               x,               X ]
1199    };
1200    key <AB03> {
1201        type= "ALPHABETIC",
1202        symbols[Group1]= [               c,               C ]
1203    };
1204    key <AB04> {
1205        type= "ALPHABETIC",
1206        symbols[Group1]= [               v,               V ]
1207    };
1208    key <AB05> {
1209        type= "ALPHABETIC",
1210        symbols[Group1]= [               b,               B ]
1211    };
1212    key <AB06> {
1213        type= "ALPHABETIC",
1214        symbols[Group1]= [               n,               N ]
1215    };
1216    key <AB07> {
1217        type= "ALPHABETIC",
1218        symbols[Group1]= [               m,               M ]
1219    };
1220    key <AB08> {         [           comma,            less ] };
1221    key <AB09> {         [          period,         greater ] };
1222    key <AB10> {         [           slash,        question ] };
1223    key <RTSH> {         [         Shift_R ] };
1224    key <KPMU> {
1225        type= "CTRL+ALT",
1226        symbols[Group1]= [     KP_Multiply,     KP_Multiply,     KP_Multiply,     KP_Multiply,   XF86ClearGrab ]
1227    };
1228    key <LALT> {         [           Alt_L,          Meta_L ] };
1229    key <SPCE> {         [           space ] };
1230    key <CAPS> {         [       Control_L,       Control_L ] };
1231    key <FK01> {
1232        type= "CTRL+ALT",
1233        symbols[Group1]= [              F1,              F1,              F1,              F1, XF86Switch_VT_1 ]
1234    };
1235    key <FK02> {
1236        type= "CTRL+ALT",
1237        symbols[Group1]= [              F2,              F2,              F2,              F2, XF86Switch_VT_2 ]
1238    };
1239    key <FK03> {
1240        type= "CTRL+ALT",
1241        symbols[Group1]= [              F3,              F3,              F3,              F3, XF86Switch_VT_3 ]
1242    };
1243    key <FK04> {
1244        type= "CTRL+ALT",
1245        symbols[Group1]= [              F4,              F4,              F4,              F4, XF86Switch_VT_4 ]
1246    };
1247    key <FK05> {
1248        type= "CTRL+ALT",
1249        symbols[Group1]= [              F5,              F5,              F5,              F5, XF86Switch_VT_5 ]
1250    };
1251    key <FK06> {
1252        type= "CTRL+ALT",
1253        symbols[Group1]= [              F6,              F6,              F6,              F6, XF86Switch_VT_6 ]
1254    };
1255    key <FK07> {
1256        type= "CTRL+ALT",
1257        symbols[Group1]= [              F7,              F7,              F7,              F7, XF86Switch_VT_7 ]
1258    };
1259    key <FK08> {
1260        type= "CTRL+ALT",
1261        symbols[Group1]= [              F8,              F8,              F8,              F8, XF86Switch_VT_8 ]
1262    };
1263    key <FK09> {
1264        type= "CTRL+ALT",
1265        symbols[Group1]= [              F9,              F9,              F9,              F9, XF86Switch_VT_9 ]
1266    };
1267    key <FK10> {
1268        type= "CTRL+ALT",
1269        symbols[Group1]= [             F10,             F10,             F10,             F10, XF86Switch_VT_10 ]
1270    };
1271    key <NMLK> {         [        Num_Lock ] };
1272    key <SCLK> {         [     Scroll_Lock ] };
1273    key  <KP7> {         [         KP_Home,            KP_7 ] };
1274    key  <KP8> {         [           KP_Up,            KP_8 ] };
1275    key  <KP9> {         [        KP_Prior,            KP_9 ] };
1276    key <KPSU> {
1277        type= "CTRL+ALT",
1278        symbols[Group1]= [     KP_Subtract,     KP_Subtract,     KP_Subtract,     KP_Subtract,  XF86Prev_VMode ]
1279    };
1280    key  <KP4> {         [         KP_Left,            KP_4 ] };
1281    key  <KP5> {         [        KP_Begin,            KP_5 ] };
1282    key  <KP6> {         [        KP_Right,            KP_6 ] };
1283    key <KPAD> {
1284        type= "CTRL+ALT",
1285        symbols[Group1]= [          KP_Add,          KP_Add,          KP_Add,          KP_Add,  XF86Next_VMode ]
1286    };
1287    key  <KP1> {         [          KP_End,            KP_1 ] };
1288    key  <KP2> {         [         KP_Down,            KP_2 ] };
1289    key  <KP3> {         [         KP_Next,            KP_3 ] };
1290    key  <KP0> {         [       KP_Insert,            KP_0 ] };
1291    key <KPDL> {         [       KP_Delete,      KP_Decimal ] };
1292    key <LVL3> {         [ ISO_Level3_Shift ] };
1293    key <LSGT> {
1294        type= "FOUR_LEVEL",
1295        symbols[Group1]= [            less,         greater,             bar,       brokenbar ]
1296    };
1297    key <FK11> {
1298        type= "CTRL+ALT",
1299        symbols[Group1]= [             F11,             F11,             F11,             F11, XF86Switch_VT_11 ]
1300    };
1301    key <FK12> {
1302        type= "CTRL+ALT",
1303        symbols[Group1]= [             F12,             F12,             F12,             F12, XF86Switch_VT_12 ]
1304    };
1305    key <KATA> {         [        Katakana ] };
1306    key <HIRA> {         [        Hiragana ] };
1307    key <HENK> {         [     Henkan_Mode ] };
1308    key <HKTG> {         [ Hiragana_Katakana ] };
1309    key <MUHE> {         [        Muhenkan ] };
1310    key <KPEN> {         [        KP_Enter ] };
1311    key <RCTL> {         [       Control_R ] };
1312    key <KPDV> {
1313        type= "CTRL+ALT",
1314        symbols[Group1]= [       KP_Divide,       KP_Divide,       KP_Divide,       KP_Divide,      XF86Ungrab ]
1315    };
1316    key <PRSC> {
1317        type= "PC_ALT_LEVEL2",
1318        symbols[Group1]= [           Print,         Sys_Req ]
1319    };
1320    key <RALT> {
1321        type= "TWO_LEVEL",
1322        symbols[Group1]= [           Alt_R,          Meta_R ]
1323    };
1324    key <LNFD> {         [        Linefeed ] };
1325    key <HOME> {         [            Home ] };
1326    key   <UP> {         [              Up ] };
1327    key <PGUP> {         [           Prior ] };
1328    key <LEFT> {         [            Left ] };
1329    key <RGHT> {         [           Right ] };
1330    key  <END> {         [             End ] };
1331    key <DOWN> {         [            Down ] };
1332    key <PGDN> {         [            Next ] };
1333    key  <INS> {         [          Insert ] };
1334    key <DELE> {         [          Delete ] };
1335    key <MUTE> {         [   XF86AudioMute ] };
1336    key <VOL-> {         [ XF86AudioLowerVolume ] };
1337    key <VOL+> {         [ XF86AudioRaiseVolume ] };
1338    key <POWR> {         [    XF86PowerOff ] };
1339    key <KPEQ> {         [        KP_Equal ] };
1340    key <I126> {         [       plusminus ] };
1341    key <PAUS> {
1342        type= "PC_CONTROL_LEVEL2",
1343        symbols[Group1]= [           Pause,           Break ]
1344    };
1345    key <I128> {         [     XF86LaunchA ] };
1346    key <I129> {         [      KP_Decimal,      KP_Decimal ] };
1347    key <HNGL> {         [          Hangul ] };
1348    key <HJCV> {         [    Hangul_Hanja ] };
1349    key <LWIN> {         [         Super_L ] };
1350    key <RWIN> {
1351        type= "TWO_LEVEL",
1352        symbols[Group1]= [       Multi_key,       Multi_key ]
1353    };
1354    key <COMP> {         [            Menu ] };
1355    key <STOP> {         [          Cancel ] };
1356    key <AGAI> {         [            Redo ] };
1357    key <PROP> {         [        SunProps ] };
1358    key <UNDO> {         [            Undo ] };
1359    key <FRNT> {         [        SunFront ] };
1360    key <COPY> {         [        XF86Copy ] };
1361    key <OPEN> {         [         SunOpen ] };
1362    key <PAST> {         [       XF86Paste ] };
1363    key <FIND> {         [            Find ] };
1364    key  <CUT> {         [         XF86Cut ] };
1365    key <HELP> {         [            Help ] };
1366    key <I147> {         [      XF86MenuKB ] };
1367    key <I148> {         [  XF86Calculator ] };
1368    key <I150> {         [       XF86Sleep ] };
1369    key <I151> {         [      XF86WakeUp ] };
1370    key <I152> {         [    XF86Explorer ] };
1371    key <I153> {         [        XF86Send ] };
1372    key <I155> {         [        XF86Xfer ] };
1373    key <I156> {         [     XF86Launch1 ] };
1374    key <I157> {         [     XF86Launch2 ] };
1375    key <I158> {         [         XF86WWW ] };
1376    key <I159> {         [         XF86DOS ] };
1377    key <I160> {         [ XF86ScreenSaver ] };
1378    key <I162> {         [ XF86RotateWindows ] };
1379    key <I163> {         [        XF86Mail ] };
1380    key <I164> {         [   XF86Favorites ] };
1381    key <I165> {         [  XF86MyComputer ] };
1382    key <I166> {         [        XF86Back ] };
1383    key <I167> {         [     XF86Forward ] };
1384    key <I169> {         [       XF86Eject ] };
1385    key <I170> {         [       XF86Eject,       XF86Eject ] };
1386    key <I171> {         [   XF86AudioNext ] };
1387    key <I172> {         [   XF86AudioPlay,  XF86AudioPause ] };
1388    key <I173> {         [   XF86AudioPrev ] };
1389    key <I174> {         [   XF86AudioStop,       XF86Eject ] };
1390    key <I175> {         [ XF86AudioRecord ] };
1391    key <I176> {         [ XF86AudioRewind ] };
1392    key <I177> {         [       XF86Phone ] };
1393    key <I179> {         [       XF86Tools ] };
1394    key <I180> {         [    XF86HomePage ] };
1395    key <I181> {         [      XF86Reload ] };
1396    key <I182> {         [       XF86Close ] };
1397    key <I185> {         [    XF86ScrollUp ] };
1398    key <I186> {         [  XF86ScrollDown ] };
1399    key <I187> {         [       parenleft ] };
1400    key <I188> {         [      parenright ] };
1401    key <I189> {         [         XF86New ] };
1402    key <I190> {         [            Redo ] };
1403    key <FK13> {         [       XF86Tools ] };
1404    key <FK14> {         [     XF86Launch5 ] };
1405    key <FK15> {         [     XF86Launch6 ] };
1406    key <FK16> {         [     XF86Launch7 ] };
1407    key <FK17> {         [     XF86Launch8 ] };
1408    key <FK18> {         [     XF86Launch9 ] };
1409    key <FK21> {         [ XF86TouchpadToggle ] };
1410    key <FK22> {         [  XF86TouchpadOn ] };
1411    key <FK23> {         [ XF86TouchpadOff ] };
1412    key <MDSW> {         [     Mode_switch ] };
1413    key  <ALT> {         [        NoSymbol,           Alt_L ] };
1414    key <META> {         [        NoSymbol,          Meta_L ] };
1415    key <SUPR> {         [        NoSymbol,         Super_L ] };
1416    key <HYPR> {         [        NoSymbol,         Hyper_L ] };
1417    key <I208> {         [   XF86AudioPlay ] };
1418    key <I209> {         [  XF86AudioPause ] };
1419    key <I210> {         [     XF86Launch3 ] };
1420    key <I211> {         [     XF86Launch4 ] };
1421    key <I212> {         [     XF86LaunchB ] };
1422    key <I213> {         [     XF86Suspend ] };
1423    key <I214> {         [       XF86Close ] };
1424    key <I215> {         [   XF86AudioPlay ] };
1425    key <I216> {         [ XF86AudioForward ] };
1426    key <I218> {         [           Print ] };
1427    key <I220> {         [      XF86WebCam ] };
1428    key <I223> {         [        XF86Mail ] };
1429    key <I224> {         [   XF86Messenger ] };
1430    key <I225> {         [      XF86Search ] };
1431    key <I226> {         [          XF86Go ] };
1432    key <I227> {         [     XF86Finance ] };
1433    key <I228> {         [        XF86Game ] };
1434    key <I229> {         [        XF86Shop ] };
1435    key <I231> {         [          Cancel ] };
1436    key <I232> {         [ XF86MonBrightnessDown ] };
1437    key <I233> {         [ XF86MonBrightnessUp ] };
1438    key <I234> {         [  XF86AudioMedia ] };
1439    key <I235> {         [     XF86Display ] };
1440    key <I236> {         [ XF86KbdLightOnOff ] };
1441    key <I237> {         [ XF86KbdBrightnessDown ] };
1442    key <I238> {         [ XF86KbdBrightnessUp ] };
1443    key <I239> {         [        XF86Send ] };
1444    key <I240> {         [       XF86Reply ] };
1445    key <I241> {         [ XF86MailForward ] };
1446    key <I242> {         [        XF86Save ] };
1447    key <I243> {         [   XF86Documents ] };
1448    key <I244> {         [     XF86Battery ] };
1449    key <I245> {         [   XF86Bluetooth ] };
1450    key <I246> {         [        XF86WLAN ] };
1451    modifier_map Control { <LCTL> };
1452    modifier_map Shift { <LFSH> };
1453    modifier_map Shift { <RTSH> };
1454    modifier_map Mod1 { <LALT> };
1455    modifier_map Control { <CAPS> };
1456    modifier_map Mod2 { <NMLK> };
1457    modifier_map Mod5 { <LVL3> };
1458    modifier_map Control { <RCTL> };
1459    modifier_map Mod1 { <RALT> };
1460    modifier_map Mod4 { <LWIN> };
1461    modifier_map Mod5 { <MDSW> };
1462    modifier_map Mod1 { <META> };
1463    modifier_map Mod4 { <SUPR> };
1464    modifier_map Mod4 { <HYPR> };
1465};
1466
1467xkb_geometry "pc(pc105)" {
1468
1469    width=       470;
1470    height=      180;
1471
1472    alias <AC00> = <CAPS>;
1473    alias <AA00> = <LCTL>;
1474
1475    baseColor=   "white";
1476    labelColor=  "black";
1477    xfont=       "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
1478    description= "Generic 105";
1479
1480    shape "NORM" {
1481        corner= 1,
1482        { [  18,  18 ] },
1483        { [   2,   1 ], [  16,  16 ] }
1484    };
1485    shape "BKSP" {
1486        corner= 1,
1487        { [  38,  18 ] },
1488        { [   2,   1 ], [  36,  16 ] }
1489    };
1490    shape "TABK" {
1491        corner= 1,
1492        { [  28,  18 ] },
1493        { [   2,   1 ], [  26,  16 ] }
1494    };
1495    shape "BKSL" {
1496        corner= 1,
1497        { [  28,  18 ] },
1498        { [   2,   1 ], [  26,  16 ] }
1499    };
1500    shape "RTRN" {
1501        corner= 1,
1502        { [   0,   0 ], [  28,   0 ], [  28,  37 ], [   5,  37 ],
1503          [   5,  18 ], [   0,  18 ] },
1504        { [   2,   1 ], [  26,   1 ], [  26,  35 ], [   7,  35 ],
1505          [   7,  16 ], [   2,  16 ] },
1506        approx= { [   5,   0 ], [  28,  37 ] }
1507    };
1508    shape "CAPS" {
1509        corner= 1,
1510        { [  33,  18 ] },
1511        { [   2,   1 ], [  31,  16 ] }
1512    };
1513    shape "LFSH" {
1514        corner= 1,
1515        { [  25,  18 ] },
1516        { [   2,   1 ], [  23,  16 ] }
1517    };
1518    shape "RTSH" {
1519        corner= 1,
1520        { [  50,  18 ] },
1521        { [   2,   1 ], [  48,  16 ] }
1522    };
1523    shape "MODK" {
1524        corner= 1,
1525        { [  27,  18 ] },
1526        { [   2,   1 ], [  25,  16 ] }
1527    };
1528    shape "SMOD" {
1529        corner= 1,
1530        { [  23,  18 ] },
1531        { [   2,   1 ], [  21,  16 ] }
1532    };
1533    shape "SPCE" {
1534        corner= 1,
1535        { [ 113,  18 ] },
1536        { [   2,   1 ], [ 111,  16 ] }
1537    };
1538    shape "KP0" {
1539        corner= 1,
1540        { [  37,  18 ] },
1541        { [   2,   1 ], [  35,  16 ] }
1542    };
1543    shape "KPAD" {
1544        corner= 1,
1545        { [  18,  37 ] },
1546        { [   2,   1 ], [  16,  35 ] }
1547    };
1548    shape "LEDS" { { [  75,  20 ] } };
1549    shape "LED" { { [   5,   1 ] } };
1550    section "Function" {
1551        key.color= "grey20";
1552        priority=  7;
1553        top=       22;
1554        left=      19;
1555        width=     351;
1556        height=    19;
1557        row {
1558            top=  1;
1559            left= 1;
1560            keys {
1561                {  <ESC>, "NORM",   1 },
1562                { <FK01>, "NORM",  20, color="white" },
1563                { <FK02>, "NORM",   1, color="white" },
1564                { <FK03>, "NORM",   1, color="white" },
1565                { <FK04>, "NORM",   1, color="white" },
1566                { <FK05>, "NORM",  11, color="white" },
1567                { <FK06>, "NORM",   1, color="white" },
1568                { <FK07>, "NORM",   1, color="white" },
1569                { <FK08>, "NORM",   1, color="white" },
1570                { <FK09>, "NORM",  11, color="white" },
1571                { <FK10>, "NORM",   1, color="white" },
1572                { <FK11>, "NORM",   1, color="white" },
1573                { <FK12>, "NORM",   1, color="white" },
1574                { <PRSC>, "NORM",   8, color="white" },
1575                { <SCLK>, "NORM",   1, color="white" },
1576                { <PAUS>, "NORM",   1, color="white" }
1577            };
1578        };
1579    }; // End of "Function" section
1580
1581    section "Alpha" {
1582        key.color= "white";
1583        priority=  8;
1584        top=       61;
1585        left=      19;
1586        width=     287;
1587        height=    95;
1588        row {
1589            top=  1;
1590            left= 1;
1591            keys {
1592                { <TLDE>, "NORM",   1 }, { <AE01>, "NORM",   1 },
1593                { <AE02>, "NORM",   1 }, { <AE03>, "NORM",   1 },
1594                { <AE04>, "NORM",   1 }, { <AE05>, "NORM",   1 },
1595                { <AE06>, "NORM",   1 }, { <AE07>, "NORM",   1 },
1596                { <AE08>, "NORM",   1 }, { <AE09>, "NORM",   1 },
1597                { <AE10>, "NORM",   1 }, { <AE11>, "NORM",   1 },
1598                { <AE12>, "NORM",   1 },
1599                { <BKSP>, "BKSP",   1, color="grey20" }
1600            };
1601        };
1602        row {
1603            top=  20;
1604            left= 1;
1605            keys {
1606                {  <TAB>, "TABK",   1, color="grey20" },
1607                { <AD01>, "NORM",   1 }, { <AD02>, "NORM",   1 },
1608                { <AD03>, "NORM",   1 }, { <AD04>, "NORM",   1 },
1609                { <AD05>, "NORM",   1 }, { <AD06>, "NORM",   1 },
1610                { <AD07>, "NORM",   1 }, { <AD08>, "NORM",   1 },
1611                { <AD09>, "NORM",   1 }, { <AD10>, "NORM",   1 },
1612                { <AD11>, "NORM",   1 }, { <AD12>, "NORM",   1 },
1613                { <RTRN>, "RTRN",   1, color="grey20" }
1614            };
1615        };
1616        row {
1617            top=  39;
1618            left= 1;
1619            keys {
1620                { <CAPS>, "CAPS",   1, color="grey20" },
1621                { <AC01>, "NORM",   1 }, { <AC02>, "NORM",   1 },
1622                { <AC03>, "NORM",   1 }, { <AC04>, "NORM",   1 },
1623                { <AC05>, "NORM",   1 }, { <AC06>, "NORM",   1 },
1624                { <AC07>, "NORM",   1 }, { <AC08>, "NORM",   1 },
1625                { <AC09>, "NORM",   1 }, { <AC10>, "NORM",   1 },
1626                { <AC11>, "NORM",   1 }, { <BKSL>, "NORM",   1 }
1627            };
1628        };
1629        row {
1630            top=  58;
1631            left= 1;
1632            keys {
1633                { <LFSH>, "LFSH",   1, color="grey20" },
1634                { <LSGT>, "NORM",   1 }, { <AB01>, "NORM",   1 },
1635                { <AB02>, "NORM",   1 }, { <AB03>, "NORM",   1 },
1636                { <AB04>, "NORM",   1 }, { <AB05>, "NORM",   1 },
1637                { <AB06>, "NORM",   1 }, { <AB07>, "NORM",   1 },
1638                { <AB08>, "NORM",   1 }, { <AB09>, "NORM",   1 },
1639                { <AB10>, "NORM",   1 },
1640                { <RTSH>, "RTSH",   1, color="grey20" }
1641            };
1642        };
1643        row {
1644            top=  77;
1645            left= 1;
1646            keys {
1647                { <LCTL>, "MODK",   1, color="grey20" },
1648                { <LWIN>, "SMOD",   1, color="grey20" },
1649                { <LALT>, "SMOD",   1, color="grey20" },
1650                { <SPCE>, "SPCE",   1 },
1651                { <RALT>, "SMOD",   1, color="grey20" },
1652                { <RWIN>, "SMOD",   1, color="grey20" },
1653                { <MENU>, "SMOD",   1, color="grey20" },
1654                { <RCTL>, "SMOD",   1, color="grey20" }
1655            };
1656        };
1657    }; // End of "Alpha" section
1658
1659    section "Editing" {
1660        key.color= "grey20";
1661        priority=  9;
1662        top=       61;
1663        left=      312;
1664        width=     58;
1665        height=    95;
1666        row {
1667            top=  1;
1668            left= 1;
1669            keys {
1670                {  <INS>, "NORM",   1 }, { <HOME>, "NORM",   1 },
1671                { <PGUP>, "NORM",   1 }
1672            };
1673        };
1674        row {
1675            top=  20;
1676            left= 1;
1677            keys {
1678                { <DELE>, "NORM",   1 }, {  <END>, "NORM",   1 },
1679                { <PGDN>, "NORM",   1 }
1680            };
1681        };
1682        row {
1683            top=  58;
1684            left= 20;
1685            keys {
1686                {   <UP>, "NORM",   1 }
1687            };
1688        };
1689        row {
1690            top=  77;
1691            left= 1;
1692            keys {
1693                { <LEFT>, "NORM",   1 }, { <DOWN>, "NORM",   1 },
1694                { <RGHT>, "NORM",   1 }
1695            };
1696        };
1697    }; // End of "Editing" section
1698
1699    section "Keypad" {
1700        key.color= "grey20";
1701        priority=  10;
1702        top=       61;
1703        left=      376;
1704        width=     77;
1705        height=    95;
1706        row {
1707            top=  1;
1708            left= 1;
1709            keys {
1710                { <NMLK>, "NORM",   1 }, { <KPDV>, "NORM",   1 },
1711                { <KPMU>, "NORM",   1 }, { <KPSU>, "NORM",   1 }
1712            };
1713        };
1714        row {
1715            top=  20;
1716            left= 1;
1717            keys {
1718                {  <KP7>, "NORM",   1, color="white" },
1719                {  <KP8>, "NORM",   1, color="white" },
1720                {  <KP9>, "NORM",   1, color="white" },
1721                { <KPAD>, "KPAD",   1 }
1722            };
1723        };
1724        row {
1725            top=  39;
1726            left= 1;
1727            keys {
1728                {  <KP4>, "NORM",   1, color="white" },
1729                {  <KP5>, "NORM",   1, color="white" },
1730                {  <KP6>, "NORM",   1, color="white" }
1731            };
1732        };
1733        row {
1734            top=  58;
1735            left= 1;
1736            keys {
1737                {  <KP1>, "NORM",   1, color="white" },
1738                {  <KP2>, "NORM",   1, color="white" },
1739                {  <KP3>, "NORM",   1, color="white" },
1740                { <KPEN>, "KPAD",   1 }
1741            };
1742        };
1743        row {
1744            top=  77;
1745            left= 1;
1746            keys {
1747                {  <KP0>, "KP0",   1, color="white" },
1748                { <KPDL>, "NORM",   1, color="white" }
1749            };
1750        };
1751    }; // End of "Keypad" section
1752
1753    solid "LedPanel" {
1754        top=      22;
1755        left=     377;
1756        priority= 0;
1757        color= "grey10";
1758        shape= "LEDS";
1759    };
1760    indicator "Num Lock" {
1761        top=      37;
1762        left=     382;
1763        priority= 1;
1764        onColor= "green";
1765        offColor= "green30";
1766        shape= "LED";
1767    };
1768    indicator "Caps Lock" {
1769        top=      37;
1770        left=     407;
1771        priority= 2;
1772        onColor= "green";
1773        offColor= "green30";
1774        shape= "LED";
1775    };
1776    indicator "Scroll Lock" {
1777        top=      37;
1778        left=     433;
1779        priority= 3;
1780        onColor= "green";
1781        offColor= "green30";
1782        shape= "LED";
1783    };
1784    text "NumLockLabel" {
1785        top=      25;
1786        left=     378;
1787        priority= 4;
1788        width=  19.8;
1789        height=  10;
1790        XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
1791        text=  "Num\nLock";
1792    };
1793    text "CapsLockLabel" {
1794        top=      25;
1795        left=     403;
1796        priority= 5;
1797        width=  26.4;
1798        height=  10;
1799        XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
1800        text=  "Caps\nLock";
1801    };
1802    text "ScrollLockLabel" {
1803        top=      25;
1804        left=     428;
1805        priority= 6;
1806        width=  39.6;
1807        height=  10;
1808        XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
1809        text=  "Scroll\nLock";
1810    };
1811};
1812
1813};
1814