madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

fix commenting and disable transparency
[etc/xsession.git] / .xkb
1 xkb_keymap {
2 xkb_keycodes "xfree86+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     <SYRQ> = 92;
89     <MDSW> = 93;
90     <LSGT> = 94;
91     <FK11> = 95;
92     <FK12> = 96;
93     <HOME> = 97;
94       <UP> = 98;
95     <PGUP> = 99;
96     <LEFT> = 100;
97     <II65> = 101;
98     <RGHT> = 102;
99      <END> = 103;
100     <DOWN> = 104;
101     <PGDN> = 105;
102      <INS> = 106;
103     <DELE> = 107;
104     <KPEN> = 108;
105     <RCTL> = 109;
106     <PAUS> = 110;
107     <PRSC> = 111;
108     <KPDV> = 112;
109     <RALT> = 113;
110      <BRK> = 114;
111     <LWIN> = 115;
112     <RWIN> = 116;
113     <MENU> = 117;
114     <FK13> = 118;
115     <FK14> = 119;
116     <FK15> = 120;
117     <FK16> = 121;
118     <FK17> = 122;
119     <KPDC> = 123;
120     <LVL3> = 124;
121      <ALT> = 125;
122     <KPEQ> = 126;
123     <SUPR> = 127;
124     <HYPR> = 128;
125     <XFER> = 129;
126      <I02> = 130;
127     <NFER> = 131;
128      <I04> = 132;
129     <AE13> = 133;
130      <I06> = 134;
131      <I07> = 135;
132      <I08> = 136;
133      <I09> = 137;
134      <I0A> = 138;
135      <I0B> = 139;
136      <I0C> = 140;
137      <I0D> = 141;
138      <I0E> = 142;
139      <I0F> = 143;
140      <I10> = 144;
141      <I11> = 145;
142      <I12> = 146;
143      <I13> = 147;
144      <I14> = 148;
145      <I15> = 149;
146      <I16> = 150;
147      <I17> = 151;
148      <I18> = 152;
149      <I19> = 153;
150      <I1A> = 154;
151      <I1B> = 155;
152     <META> = 156;
153      <K59> = 157;
154      <I1E> = 158;
155      <I1F> = 159;
156      <I20> = 160;
157      <I21> = 161;
158      <I22> = 162;
159      <I23> = 163;
160      <I24> = 164;
161      <I25> = 165;
162      <I26> = 166;
163      <I27> = 167;
164      <I28> = 168;
165      <I29> = 169;
166      <K5A> = 170;
167      <I2B> = 171;
168      <I2C> = 172;
169      <I2D> = 173;
170      <I2E> = 174;
171      <I2F> = 175;
172      <I30> = 176;
173      <I31> = 177;
174      <I32> = 178;
175      <I33> = 179;
176      <I34> = 180;
177      <K5B> = 181;
178      <K5D> = 182;
179      <K5E> = 183;
180      <K5F> = 184;
181      <I39> = 185;
182      <I3A> = 186;
183      <I3B> = 187;
184      <I3C> = 188;
185      <K62> = 189;
186      <K63> = 190;
187      <K64> = 191;
188      <K65> = 192;
189      <K66> = 193;
190      <I42> = 194;
191      <I43> = 195;
192      <I44> = 196;
193      <I45> = 197;
194      <K67> = 198;
195      <K68> = 199;
196      <K69> = 200;
197      <K6A> = 201;
198      <I4A> = 202;
199      <K6B> = 203;
200      <K6C> = 204;
201      <K6D> = 205;
202      <K6E> = 206;
203      <K6F> = 207;
204     <HKTG> = 208;
205     <KANA> = 209;
206     <EISU> = 210;
207     <AB11> = 211;
208      <I54> = 212;
209      <I55> = 213;
210     <OUTP> = 214;
211     <KITG> = 215;
212     <KIDN> = 216;
213     <KIUP> = 217;
214      <I5A> = 218;
215      <K74> = 219;
216      <K75> = 220;
217      <K76> = 221;
218      <I5E> = 222;
219      <I5F> = 223;
220      <I60> = 224;
221      <I61> = 225;
222      <I62> = 226;
223      <I63> = 227;
224      <I64> = 228;
225      <I65> = 229;
226      <I66> = 230;
227      <I67> = 231;
228      <I68> = 232;
229      <I69> = 233;
230      <I6A> = 234;
231      <I6B> = 235;
232      <I6C> = 236;
233      <I6D> = 237;
234      <I6E> = 238;
235      <I6F> = 239;
236      <I70> = 240;
237      <I71> = 241;
238      <I72> = 242;
239      <I73> = 243;
240      <I74> = 244;
241      <I75> = 245;
242      <I76> = 246;
243      <I77> = 247;
244      <I78> = 248;
245      <I79> = 249;
246      <I7A> = 250;
247      <I7B> = 251;
248      <I7C> = 252;
249      <I7D> = 253;
250      <I7E> = 254;
251      <I7F> = 255;
252     indicator 1 = "Caps Lock";
253     indicator 2 = "Num Lock";
254     indicator 3 = "Scroll Lock";
255     virtual indicator 4 = "Shift Lock";
256     virtual indicator 5 = "Group 2";
257     virtual indicator 6 = "Mouse Keys";
258     alias <AE00> = <TLDE>;
259     alias <HZTG> = <TLDE>;
260     alias <HNGL> = <FK16>;
261     alias <HJCV> = <FK17>;
262     alias  <I01> = <XFER>;
263     alias  <I03> = <NFER>;
264     alias  <I05> = <AE13>;
265     alias  <K5C> = <KPEQ>;
266     alias  <K70> = <HKTG>;
267     alias  <K71> = <KANA>;
268     alias  <K72> = <EISU>;
269     alias  <K73> = <AB11>;
270     alias <LMTA> = <LWIN>;
271     alias <RMTA> = <RWIN>;
272     alias <COMP> = <MENU>;
273     alias <POWR> =  <I0C>;
274     alias <MUTE> =  <I0D>;
275     alias <VOL-> =  <I0E>;
276     alias <VOL+> =  <I0F>;
277     alias <HELP> =  <I10>;
278     alias <STOP> =  <I11>;
279     alias <AGAI> =  <I12>;
280     alias <PROP> =  <I13>;
281     alias <UNDO> =  <I14>;
282     alias <FRNT> =  <I15>;
283     alias <COPY> =  <I16>;
284     alias <OPEN> =  <I17>;
285     alias <PAST> =  <I18>;
286     alias <FIND> =  <I19>;
287     alias  <CUT> =  <I1A>;
288     alias <ALGR> = <RALT>;
289     alias <LatQ> = <AD01>;
290     alias <LatW> = <AD02>;
291     alias <LatE> = <AD03>;
292     alias <LatR> = <AD04>;
293     alias <LatT> = <AD05>;
294     alias <LatY> = <AD06>;
295     alias <LatU> = <AD07>;
296     alias <LatI> = <AD08>;
297     alias <LatO> = <AD09>;
298     alias <LatP> = <AD10>;
299     alias <LatA> = <AC01>;
300     alias <LatS> = <AC02>;
301     alias <LatD> = <AC03>;
302     alias <LatF> = <AC04>;
303     alias <LatG> = <AC05>;
304     alias <LatH> = <AC06>;
305     alias <LatJ> = <AC07>;
306     alias <LatK> = <AC08>;
307     alias <LatL> = <AC09>;
308     alias <LatZ> = <AB01>;
309     alias <LatX> = <AB02>;
310     alias <LatC> = <AB03>;
311     alias <LatV> = <AB04>;
312     alias <LatB> = <AB05>;
313     alias <LatN> = <AB06>;
314     alias <LatM> = <AB07>;
315 };
316
317 xkb_types "complete" {
318
319     virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
320
321     type "ONE_LEVEL" {
322         modifiers= none;
323         level_name[Level1]= "Any";
324     };
325     type "TWO_LEVEL" {
326         modifiers= Shift;
327         map[Shift]= Level2;
328         level_name[Level1]= "Base";
329         level_name[Level2]= "Shift";
330     };
331     type "ALPHABETIC" {
332         modifiers= Shift+Lock;
333         map[Shift]= Level2;
334         map[Lock]= Level2;
335         level_name[Level1]= "Base";
336         level_name[Level2]= "Caps";
337     };
338     type "KEYPAD" {
339         modifiers= Shift+NumLock;
340         map[Shift]= Level2;
341         map[NumLock]= Level2;
342         level_name[Level1]= "Base";
343         level_name[Level2]= "Number";
344     };
345     type "SHIFT+ALT" {
346         modifiers= Shift+Alt;
347         map[Shift+Alt]= Level2;
348         level_name[Level1]= "Base";
349         level_name[Level2]= "Shift+Alt";
350     };
351     type "PC_CONTROL_LEVEL2" {
352         modifiers= Control;
353         map[Control]= Level2;
354         level_name[Level1]= "Base";
355         level_name[Level2]= "Control";
356     };
357     type "PC_LCONTROL_LEVEL2" {
358         modifiers= LControl;
359         map[LControl]= Level2;
360         level_name[Level1]= "Base";
361         level_name[Level2]= "LControl";
362     };
363     type "PC_RCONTROL_LEVEL2" {
364         modifiers= RControl;
365         map[RControl]= Level2;
366         level_name[Level1]= "Base";
367         level_name[Level2]= "RControl";
368     };
369     type "PC_ALT_LEVEL2" {
370         modifiers= Alt;
371         map[Alt]= Level2;
372         level_name[Level1]= "Base";
373         level_name[Level2]= "Alt";
374     };
375     type "PC_LALT_LEVEL2" {
376         modifiers= LAlt;
377         map[LAlt]= Level2;
378         level_name[Level1]= "Base";
379         level_name[Level2]= "LAlt";
380     };
381     type "PC_RALT_LEVEL2" {
382         modifiers= RAlt;
383         map[RAlt]= Level2;
384         level_name[Level1]= "Base";
385         level_name[Level2]= "RAlt";
386     };
387     type "CTRL+ALT" {
388         modifiers= Control+Alt;
389         map[Control+Alt]= Level2;
390         level_name[Level1]= "Base";
391         level_name[Level2]= "Ctrl+Alt";
392     };
393     type "LOCAL_EIGHT_LEVEL" {
394         modifiers= Shift+Lock+Control+LevelThree;
395         map[Shift+Lock]= Level1;
396         map[Shift]= Level2;
397         map[Lock]= Level2;
398         map[LevelThree]= Level3;
399         map[Shift+Lock+LevelThree]= Level3;
400         map[Shift+LevelThree]= Level4;
401         map[Lock+LevelThree]= Level4;
402         map[Control]= Level5;
403         map[Shift+Lock+Control]= Level5;
404         map[Shift+Control]= Level6;
405         map[Lock+Control]= Level6;
406         map[Control+LevelThree]= Level7;
407         map[Shift+Lock+Control+LevelThree]= Level7;
408         map[Shift+Control+LevelThree]= Level8;
409         map[Lock+Control+LevelThree]= Level8;
410         level_name[Level1]= "Base";
411         level_name[Level2]= "Shift";
412         level_name[Level3]= "Level3";
413         level_name[Level4]= "Shift Level3";
414         level_name[Level5]= "Ctrl";
415         level_name[Level6]= "Shift Ctrl";
416         level_name[Level7]= "Level3 Ctrl";
417         level_name[Level8]= "Shift Level3 Ctrl";
418     };
419     type "THREE_LEVEL" {
420         modifiers= Shift+LevelThree;
421         map[Shift]= Level2;
422         map[LevelThree]= Level3;
423         map[Shift+LevelThree]= Level3;
424         level_name[Level1]= "Base";
425         level_name[Level2]= "Shift";
426         level_name[Level3]= "Level3";
427     };
428     type "EIGHT_LEVEL" {
429         modifiers= Shift+LevelThree+LevelFive;
430         map[Shift]= Level2;
431         map[LevelThree]= Level3;
432         map[Shift+LevelThree]= Level4;
433         map[LevelFive]= Level5;
434         map[Shift+LevelFive]= Level6;
435         map[LevelThree+LevelFive]= Level7;
436         map[Shift+LevelThree+LevelFive]= Level8;
437         level_name[Level1]= "Base";
438         level_name[Level2]= "Shift";
439         level_name[Level3]= "Alt Base";
440         level_name[Level4]= "Shift Alt";
441         level_name[Level5]= "X";
442         level_name[Level6]= "X Shift";
443         level_name[Level7]= "X Alt Base";
444         level_name[Level8]= "X Shift Alt";
445     };
446     type "EIGHT_LEVEL_ALPHABETIC" {
447         modifiers= Shift+Lock+LevelThree+LevelFive;
448         map[Shift]= Level2;
449         map[Lock]= Level2;
450         map[LevelThree]= Level3;
451         map[Shift+LevelThree]= Level4;
452         map[Lock+LevelThree]= Level4;
453         map[Shift+Lock+LevelThree]= Level3;
454         map[LevelFive]= Level5;
455         map[Shift+LevelFive]= Level6;
456         map[Lock+LevelFive]= Level6;
457         map[LevelThree+LevelFive]= Level7;
458         map[Shift+LevelThree+LevelFive]= Level8;
459         map[Lock+LevelThree+LevelFive]= Level8;
460         map[Shift+Lock+LevelThree+LevelFive]= Level7;
461         level_name[Level1]= "Base";
462         level_name[Level2]= "Shift";
463         level_name[Level3]= "Alt Base";
464         level_name[Level4]= "Shift Alt";
465         level_name[Level5]= "X";
466         level_name[Level6]= "X Shift";
467         level_name[Level7]= "X Alt Base";
468         level_name[Level8]= "X Shift Alt";
469     };
470     type "EIGHT_LEVEL_SEMIALPHABETIC" {
471         modifiers= Shift+Lock+LevelThree+LevelFive;
472         map[Shift]= Level2;
473         map[Lock]= Level2;
474         map[LevelThree]= Level3;
475         map[Shift+LevelThree]= Level4;
476         map[Lock+LevelThree]= Level3;
477         preserve[Lock+LevelThree]= Lock;
478         map[Shift+Lock+LevelThree]= Level4;
479         preserve[Shift+Lock+LevelThree]= Lock;
480         map[LevelFive]= Level5;
481         map[Shift+LevelFive]= Level6;
482         map[Lock+LevelFive]= Level6;
483         preserve[Lock+LevelFive]= Lock;
484         map[LevelThree+LevelFive]= Level7;
485         map[Shift+LevelThree+LevelFive]= Level8;
486         map[Lock+LevelThree+LevelFive]= Level7;
487         preserve[Lock+LevelThree+LevelFive]= Lock;
488         map[Shift+Lock+LevelThree+LevelFive]= Level8;
489         preserve[Shift+Lock+LevelThree+LevelFive]= Lock;
490         map[Shift+Lock+LevelFive]= Level1;
491         preserve[Shift+Lock+LevelFive]= Lock;
492         level_name[Level1]= "Base";
493         level_name[Level2]= "Shift";
494         level_name[Level3]= "Alt Base";
495         level_name[Level4]= "Shift Alt";
496         level_name[Level5]= "X";
497         level_name[Level6]= "X Shift";
498         level_name[Level7]= "X Alt Base";
499         level_name[Level8]= "X Shift Alt";
500     };
501     type "FOUR_LEVEL" {
502         modifiers= Shift+LevelThree;
503         map[Shift]= Level2;
504         map[LevelThree]= Level3;
505         map[Shift+LevelThree]= Level4;
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_ALPHABETIC" {
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]= Level4;
518         map[Shift+Lock+LevelThree]= Level3;
519         level_name[Level1]= "Base";
520         level_name[Level2]= "Shift";
521         level_name[Level3]= "Alt Base";
522         level_name[Level4]= "Shift Alt";
523     };
524     type "FOUR_LEVEL_SEMIALPHABETIC" {
525         modifiers= Shift+Lock+LevelThree;
526         map[Shift]= Level2;
527         map[Lock]= Level2;
528         map[LevelThree]= Level3;
529         map[Shift+LevelThree]= Level4;
530         map[Lock+LevelThree]= Level3;
531         preserve[Lock+LevelThree]= Lock;
532         map[Shift+Lock+LevelThree]= Level4;
533         preserve[Shift+Lock+LevelThree]= Lock;
534         level_name[Level1]= "Base";
535         level_name[Level2]= "Shift";
536         level_name[Level3]= "Alt Base";
537         level_name[Level4]= "Shift Alt";
538     };
539     type "FOUR_LEVEL_MIXED_KEYPAD" {
540         modifiers= Shift+NumLock+LevelThree;
541         map[Shift+NumLock]= Level1;
542         map[NumLock]= Level2;
543         map[Shift]= Level2;
544         map[LevelThree]= Level3;
545         map[NumLock+LevelThree]= Level3;
546         map[Shift+LevelThree]= Level4;
547         map[Shift+NumLock+LevelThree]= Level4;
548         level_name[Level1]= "Base";
549         level_name[Level2]= "Number";
550         level_name[Level3]= "Alt Base";
551         level_name[Level4]= "Shift Alt";
552     };
553     type "FOUR_LEVEL_X" {
554         modifiers= Shift+Control+Alt+LevelThree;
555         map[LevelThree]= Level2;
556         map[Shift+LevelThree]= Level3;
557         map[Control+Alt]= Level4;
558         level_name[Level1]= "Base";
559         level_name[Level2]= "Alt Base";
560         level_name[Level3]= "Shift Alt";
561         level_name[Level4]= "Ctrl+Alt";
562     };
563     type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" {
564         modifiers= Shift+Lock+LevelThree;
565         map[Shift]= Level2;
566         map[Lock]= Level4;
567         preserve[Lock]= Lock;
568         map[LevelThree]= Level3;
569         map[Shift+LevelThree]= Level4;
570         map[Lock+LevelThree]= Level3;
571         preserve[Lock+LevelThree]= Lock;
572         map[Shift+Lock+LevelThree]= Level3;
573         level_name[Level1]= "Base";
574         level_name[Level2]= "Shift";
575         level_name[Level3]= "AltGr Base";
576         level_name[Level4]= "Shift AltGr";
577     };
578     type "FOUR_LEVEL_PLUS_LOCK" {
579         modifiers= Shift+Lock+LevelThree;
580         map[Shift]= Level2;
581         map[LevelThree]= Level3;
582         map[Shift+LevelThree]= Level4;
583         map[Lock]= Level5;
584         map[Shift+Lock]= Level2;
585         map[Lock+LevelThree]= Level3;
586         map[Shift+Lock+LevelThree]= Level4;
587         level_name[Level1]= "Base";
588         level_name[Level2]= "Shift";
589         level_name[Level3]= "Alt Base";
590         level_name[Level4]= "Shift Alt";
591         level_name[Level5]= "Lock";
592     };
593     type "FOUR_LEVEL_KEYPAD" {
594         modifiers= Shift+NumLock+LevelThree;
595         map[Shift]= Level2;
596         map[NumLock]= Level2;
597         map[LevelThree]= Level3;
598         map[Shift+LevelThree]= Level4;
599         map[NumLock+LevelThree]= Level4;
600         map[Shift+NumLock+LevelThree]= Level3;
601         level_name[Level1]= "Base";
602         level_name[Level2]= "Number";
603         level_name[Level3]= "Alt Base";
604         level_name[Level4]= "Alt Number";
605     };
606 };
607
608 xkb_compatibility "complete" {
609
610     virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
611
612     interpret.useModMapMods= AnyLevel;
613     interpret.repeat= False;
614     interpret.locking= False;
615     interpret ISO_Level2_Latch+Exactly(Shift) {
616         useModMapMods=level1;
617         action= LatchMods(modifiers=Shift,clearLocks,latchToLock);
618     };
619     interpret Shift_Lock+AnyOf(Shift+Lock) {
620         action= LockMods(modifiers=Shift);
621     };
622     interpret Num_Lock+AnyOf(all) {
623         virtualModifier= NumLock;
624         action= LockMods(modifiers=NumLock);
625     };
626     interpret ISO_Lock+AnyOf(all) {
627         action= ISOLock(modifiers=modMapMods,affect=all);
628     };
629     interpret ISO_Level3_Shift+AnyOf(all) {
630         virtualModifier= LevelThree;
631         useModMapMods=level1;
632         action= SetMods(modifiers=LevelThree,clearLocks);
633     };
634     interpret ISO_Level3_Latch+AnyOf(all) {
635         virtualModifier= LevelThree;
636         useModMapMods=level1;
637         action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
638     };
639     interpret ISO_Level3_Lock+AnyOf(all) {
640         virtualModifier= LevelThree;
641         useModMapMods=level1;
642         action= LockMods(modifiers=LevelThree);
643     };
644     interpret Alt_L+AnyOf(all) {
645         virtualModifier= Alt;
646         action= SetMods(modifiers=modMapMods,clearLocks);
647     };
648     interpret Alt_R+AnyOf(all) {
649         virtualModifier= Alt;
650         action= SetMods(modifiers=modMapMods,clearLocks);
651     };
652     interpret Meta_L+AnyOf(all) {
653         virtualModifier= Meta;
654         action= SetMods(modifiers=modMapMods,clearLocks);
655     };
656     interpret Meta_R+AnyOf(all) {
657         virtualModifier= Meta;
658         action= SetMods(modifiers=modMapMods,clearLocks);
659     };
660     interpret Super_L+AnyOf(all) {
661         virtualModifier= Super;
662         action= SetMods(modifiers=modMapMods,clearLocks);
663     };
664     interpret Super_R+AnyOf(all) {
665         virtualModifier= Super;
666         action= SetMods(modifiers=modMapMods,clearLocks);
667     };
668     interpret Hyper_L+AnyOf(all) {
669         virtualModifier= Hyper;
670         action= SetMods(modifiers=modMapMods,clearLocks);
671     };
672     interpret Hyper_R+AnyOf(all) {
673         virtualModifier= Hyper;
674         action= SetMods(modifiers=modMapMods,clearLocks);
675     };
676     interpret Scroll_Lock+AnyOf(all) {
677         virtualModifier= ScrollLock;
678         action= LockMods(modifiers=modMapMods);
679     };
680     interpret ISO_Level5_Shift+AnyOf(all) {
681         virtualModifier= LevelFive;
682         useModMapMods=level1;
683         action= SetMods(modifiers=LevelFive,clearLocks);
684     };
685     interpret ISO_Level5_Latch+AnyOf(all) {
686         virtualModifier= LevelFive;
687         action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
688     };
689     interpret ISO_Level5_Lock+AnyOf(all) {
690         virtualModifier= LevelFive;
691         action= LockMods(modifiers=LevelFive);
692     };
693     interpret Mode_switch+AnyOfOrNone(all) {
694         virtualModifier= AltGr;
695         useModMapMods=level1;
696         action= SetGroup(group=+1);
697     };
698     interpret ISO_Level3_Shift+AnyOfOrNone(all) {
699         action= SetMods(modifiers=LevelThree,clearLocks);
700     };
701     interpret ISO_Level3_Latch+AnyOfOrNone(all) {
702         action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
703     };
704     interpret ISO_Level3_Lock+AnyOfOrNone(all) {
705         action= LockMods(modifiers=LevelThree);
706     };
707     interpret ISO_Group_Latch+AnyOfOrNone(all) {
708         virtualModifier= AltGr;
709         useModMapMods=level1;
710         action= LatchGroup(group=2);
711     };
712     interpret ISO_Next_Group+AnyOfOrNone(all) {
713         virtualModifier= AltGr;
714         useModMapMods=level1;
715         action= LockGroup(group=+1);
716     };
717     interpret ISO_Prev_Group+AnyOfOrNone(all) {
718         virtualModifier= AltGr;
719         useModMapMods=level1;
720         action= LockGroup(group=-1);
721     };
722     interpret ISO_First_Group+AnyOfOrNone(all) {
723         action= LockGroup(group=1);
724     };
725     interpret ISO_Last_Group+AnyOfOrNone(all) {
726         action= LockGroup(group=2);
727     };
728     interpret KP_1+AnyOfOrNone(all) {
729         repeat= True;
730         action= MovePtr(x=-1,y=+1);
731     };
732     interpret KP_End+AnyOfOrNone(all) {
733         repeat= True;
734         action= MovePtr(x=-1,y=+1);
735     };
736     interpret KP_2+AnyOfOrNone(all) {
737         repeat= True;
738         action= MovePtr(x=+0,y=+1);
739     };
740     interpret KP_Down+AnyOfOrNone(all) {
741         repeat= True;
742         action= MovePtr(x=+0,y=+1);
743     };
744     interpret KP_3+AnyOfOrNone(all) {
745         repeat= True;
746         action= MovePtr(x=+1,y=+1);
747     };
748     interpret KP_Next+AnyOfOrNone(all) {
749         repeat= True;
750         action= MovePtr(x=+1,y=+1);
751     };
752     interpret KP_4+AnyOfOrNone(all) {
753         repeat= True;
754         action= MovePtr(x=-1,y=+0);
755     };
756     interpret KP_Left+AnyOfOrNone(all) {
757         repeat= True;
758         action= MovePtr(x=-1,y=+0);
759     };
760     interpret KP_6+AnyOfOrNone(all) {
761         repeat= True;
762         action= MovePtr(x=+1,y=+0);
763     };
764     interpret KP_Right+AnyOfOrNone(all) {
765         repeat= True;
766         action= MovePtr(x=+1,y=+0);
767     };
768     interpret KP_7+AnyOfOrNone(all) {
769         repeat= True;
770         action= MovePtr(x=-1,y=-1);
771     };
772     interpret KP_Home+AnyOfOrNone(all) {
773         repeat= True;
774         action= MovePtr(x=-1,y=-1);
775     };
776     interpret KP_8+AnyOfOrNone(all) {
777         repeat= True;
778         action= MovePtr(x=+0,y=-1);
779     };
780     interpret KP_Up+AnyOfOrNone(all) {
781         repeat= True;
782         action= MovePtr(x=+0,y=-1);
783     };
784     interpret KP_9+AnyOfOrNone(all) {
785         repeat= True;
786         action= MovePtr(x=+1,y=-1);
787     };
788     interpret KP_Prior+AnyOfOrNone(all) {
789         repeat= True;
790         action= MovePtr(x=+1,y=-1);
791     };
792     interpret KP_5+AnyOfOrNone(all) {
793         repeat= True;
794         action= PtrBtn(button=default);
795     };
796     interpret KP_Begin+AnyOfOrNone(all) {
797         repeat= True;
798         action= PtrBtn(button=default);
799     };
800     interpret KP_F2+AnyOfOrNone(all) {
801         repeat= True;
802         action= SetPtrDflt(affect=button,button=1);
803     };
804     interpret KP_Divide+AnyOfOrNone(all) {
805         repeat= True;
806         action= SetPtrDflt(affect=button,button=1);
807     };
808     interpret KP_F3+AnyOfOrNone(all) {
809         repeat= True;
810         action= SetPtrDflt(affect=button,button=2);
811     };
812     interpret KP_Multiply+AnyOfOrNone(all) {
813         repeat= True;
814         action= SetPtrDflt(affect=button,button=2);
815     };
816     interpret KP_F4+AnyOfOrNone(all) {
817         repeat= True;
818         action= SetPtrDflt(affect=button,button=3);
819     };
820     interpret KP_Subtract+AnyOfOrNone(all) {
821         repeat= True;
822         action= SetPtrDflt(affect=button,button=3);
823     };
824     interpret KP_Separator+AnyOfOrNone(all) {
825         repeat= True;
826         action= PtrBtn(button=default,count=2);
827     };
828     interpret KP_Add+AnyOfOrNone(all) {
829         repeat= True;
830         action= PtrBtn(button=default,count=2);
831     };
832     interpret KP_0+AnyOfOrNone(all) {
833         repeat= True;
834         action= LockPtrBtn(button=default,affect=lock);
835     };
836     interpret KP_Insert+AnyOfOrNone(all) {
837         repeat= True;
838         action= LockPtrBtn(button=default,affect=lock);
839     };
840     interpret KP_Decimal+AnyOfOrNone(all) {
841         repeat= True;
842         action= LockPtrBtn(button=default,affect=unlock);
843     };
844     interpret KP_Delete+AnyOfOrNone(all) {
845         repeat= True;
846         action= LockPtrBtn(button=default,affect=unlock);
847     };
848     interpret F25+AnyOfOrNone(all) {
849         repeat= True;
850         action= SetPtrDflt(affect=button,button=1);
851     };
852     interpret F26+AnyOfOrNone(all) {
853         repeat= True;
854         action= SetPtrDflt(affect=button,button=2);
855     };
856     interpret F27+AnyOfOrNone(all) {
857         repeat= True;
858         action= MovePtr(x=-1,y=-1);
859     };
860     interpret F29+AnyOfOrNone(all) {
861         repeat= True;
862         action= MovePtr(x=+1,y=-1);
863     };
864     interpret F31+AnyOfOrNone(all) {
865         repeat= True;
866         action= PtrBtn(button=default);
867     };
868     interpret F33+AnyOfOrNone(all) {
869         repeat= True;
870         action= MovePtr(x=-1,y=+1);
871     };
872     interpret F35+AnyOfOrNone(all) {
873         repeat= True;
874         action= MovePtr(x=+1,y=+1);
875     };
876     interpret Pointer_Button_Dflt+AnyOfOrNone(all) {
877         action= PtrBtn(button=default);
878     };
879     interpret Pointer_Button1+AnyOfOrNone(all) {
880         action= PtrBtn(button=1);
881     };
882     interpret Pointer_Button2+AnyOfOrNone(all) {
883         action= PtrBtn(button=2);
884     };
885     interpret Pointer_Button3+AnyOfOrNone(all) {
886         action= PtrBtn(button=3);
887     };
888     interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) {
889         action= PtrBtn(button=default,count=2);
890     };
891     interpret Pointer_DblClick1+AnyOfOrNone(all) {
892         action= PtrBtn(button=1,count=2);
893     };
894     interpret Pointer_DblClick2+AnyOfOrNone(all) {
895         action= PtrBtn(button=2,count=2);
896     };
897     interpret Pointer_DblClick3+AnyOfOrNone(all) {
898         action= PtrBtn(button=3,count=2);
899     };
900     interpret Pointer_Drag_Dflt+AnyOfOrNone(all) {
901         action= LockPtrBtn(button=default,affect=both);
902     };
903     interpret Pointer_Drag1+AnyOfOrNone(all) {
904         action= LockPtrBtn(button=1,affect=both);
905     };
906     interpret Pointer_Drag2+AnyOfOrNone(all) {
907         action= LockPtrBtn(button=2,affect=both);
908     };
909     interpret Pointer_Drag3+AnyOfOrNone(all) {
910         action= LockPtrBtn(button=3,affect=both);
911     };
912     interpret Pointer_EnableKeys+AnyOfOrNone(all) {
913         action= LockControls(controls=MouseKeys);
914     };
915     interpret Pointer_Accelerate+AnyOfOrNone(all) {
916         action= LockControls(controls=MouseKeysAccel);
917     };
918     interpret Pointer_DfltBtnNext+AnyOfOrNone(all) {
919         action= SetPtrDflt(affect=button,button=+1);
920     };
921     interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) {
922         action= SetPtrDflt(affect=button,button=-1);
923     };
924     interpret AccessX_Enable+AnyOfOrNone(all) {
925         action= LockControls(controls=AccessXKeys);
926     };
927     interpret AccessX_Feedback_Enable+AnyOfOrNone(all) {
928         action= LockControls(controls=AccessXFeedback);
929     };
930     interpret RepeatKeys_Enable+AnyOfOrNone(all) {
931         action= LockControls(controls=RepeatKeys);
932     };
933     interpret SlowKeys_Enable+AnyOfOrNone(all) {
934         action= LockControls(controls=SlowKeys);
935     };
936     interpret BounceKeys_Enable+AnyOfOrNone(all) {
937         action= LockControls(controls=BounceKeys);
938     };
939     interpret StickyKeys_Enable+AnyOfOrNone(all) {
940         action= LockControls(controls=StickyKeys);
941     };
942     interpret MouseKeys_Enable+AnyOfOrNone(all) {
943         action= LockControls(controls=MouseKeys);
944     };
945     interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) {
946         action= LockControls(controls=MouseKeysAccel);
947     };
948     interpret Overlay1_Enable+AnyOfOrNone(all) {
949         action= LockControls(controls=Overlay1);
950     };
951     interpret Overlay2_Enable+AnyOfOrNone(all) {
952         action= LockControls(controls=Overlay2);
953     };
954     interpret AudibleBell_Enable+AnyOfOrNone(all) {
955         action= LockControls(controls=AudibleBell);
956     };
957     interpret Terminate_Server+AnyOfOrNone(all) {
958         action= Terminate();
959     };
960     interpret Alt_L+AnyOfOrNone(all) {
961         action= SetMods(modifiers=Alt,clearLocks);
962     };
963     interpret Alt_R+AnyOfOrNone(all) {
964         action= SetMods(modifiers=Alt,clearLocks);
965     };
966     interpret Meta_L+AnyOfOrNone(all) {
967         action= SetMods(modifiers=Meta,clearLocks);
968     };
969     interpret Meta_R+AnyOfOrNone(all) {
970         action= SetMods(modifiers=Meta,clearLocks);
971     };
972     interpret Super_L+AnyOfOrNone(all) {
973         action= SetMods(modifiers=Super,clearLocks);
974     };
975     interpret Super_R+AnyOfOrNone(all) {
976         action= SetMods(modifiers=Super,clearLocks);
977     };
978     interpret Hyper_L+AnyOfOrNone(all) {
979         action= SetMods(modifiers=Hyper,clearLocks);
980     };
981     interpret Hyper_R+AnyOfOrNone(all) {
982         action= SetMods(modifiers=Hyper,clearLocks);
983     };
984     interpret XF86_Switch_VT_1+AnyOfOrNone(all) {
985         repeat= True;
986         action= SwitchScreen(screen=1,!same);
987     };
988     interpret XF86_Switch_VT_2+AnyOfOrNone(all) {
989         repeat= True;
990         action= SwitchScreen(screen=2,!same);
991     };
992     interpret XF86_Switch_VT_3+AnyOfOrNone(all) {
993         repeat= True;
994         action= SwitchScreen(screen=3,!same);
995     };
996     interpret XF86_Switch_VT_4+AnyOfOrNone(all) {
997         repeat= True;
998         action= SwitchScreen(screen=4,!same);
999     };
1000     interpret XF86_Switch_VT_5+AnyOfOrNone(all) {
1001         repeat= True;
1002         action= SwitchScreen(screen=5,!same);
1003     };
1004     interpret XF86_Switch_VT_6+AnyOfOrNone(all) {
1005         repeat= True;
1006         action= SwitchScreen(screen=6,!same);
1007     };
1008     interpret XF86_Switch_VT_7+AnyOfOrNone(all) {
1009         repeat= True;
1010         action= SwitchScreen(screen=7,!same);
1011     };
1012     interpret XF86_Switch_VT_8+AnyOfOrNone(all) {
1013         repeat= True;
1014         action= SwitchScreen(screen=8,!same);
1015     };
1016     interpret XF86_Switch_VT_9+AnyOfOrNone(all) {
1017         repeat= True;
1018         action= SwitchScreen(screen=9,!same);
1019     };
1020     interpret XF86_Switch_VT_10+AnyOfOrNone(all) {
1021         repeat= True;
1022         action= SwitchScreen(screen=10,!same);
1023     };
1024     interpret XF86_Switch_VT_11+AnyOfOrNone(all) {
1025         repeat= True;
1026         action= SwitchScreen(screen=11,!same);
1027     };
1028     interpret XF86_Switch_VT_12+AnyOfOrNone(all) {
1029         repeat= True;
1030         action= SwitchScreen(screen=12,!same);
1031     };
1032     interpret XF86_Ungrab+AnyOfOrNone(all) {
1033         repeat= True;
1034         action= Private(type=0x86,data[0]=0x55,data[1]=0x6e,data[2]=0x67,data[3]=0x72,data[4]=0x61,data[5]=0x62,data[6]=0x00);
1035     };
1036     interpret XF86_ClearGrab+AnyOfOrNone(all) {
1037         repeat= True;
1038         action= Private(type=0x86,data[0]=0x43,data[1]=0x6c,data[2]=0x73,data[3]=0x47,data[4]=0x72,data[5]=0x62,data[6]=0x00);
1039     };
1040     interpret XF86_Next_VMode+AnyOfOrNone(all) {
1041         repeat= True;
1042         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);
1043     };
1044     interpret XF86_Prev_VMode+AnyOfOrNone(all) {
1045         repeat= True;
1046         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);
1047     };
1048     interpret ISO_Level5_Shift+AnyOfOrNone(all) {
1049         action= SetMods(modifiers=LevelFive,clearLocks);
1050     };
1051     interpret ISO_Level5_Latch+AnyOfOrNone(all) {
1052         action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
1053     };
1054     interpret ISO_Level5_Lock+AnyOfOrNone(all) {
1055         action= LockMods(modifiers=LevelFive);
1056     };
1057     interpret Any+Exactly(Lock) {
1058         action= LockMods(modifiers=Lock);
1059     };
1060     interpret Any+AnyOf(all) {
1061         action= SetMods(modifiers=modMapMods,clearLocks);
1062     };
1063     indicator "Caps Lock" {
1064         !allowExplicit;
1065         whichModState= locked;
1066         modifiers= Lock;
1067     };
1068     indicator "Num Lock" {
1069         !allowExplicit;
1070         whichModState= locked;
1071         modifiers= NumLock;
1072     };
1073     indicator "Scroll Lock" {
1074         whichModState= locked;
1075         modifiers= ScrollLock;
1076     };
1077     indicator "Shift Lock" {
1078         !allowExplicit;
1079         whichModState= locked;
1080         modifiers= Shift;
1081     };
1082     indicator "Group 2" {
1083         !allowExplicit;
1084         groups= 0xfe;
1085     };
1086     indicator "Mouse Keys" {
1087         indicatorDrivesKeyboard;
1088         controls= mouseKeys;
1089     };
1090 };
1091
1092 xkb_symbols "pc+us+ctrl(nocaps)" {
1093
1094     name[group1]="USA";
1095
1096     key  <ESC> {         [          Escape ] };
1097     key <AE01> {         [               1,          exclam ] };
1098     key <AE02> {         [               2,              at ] };
1099     key <AE03> {         [               3,      numbersign ] };
1100     key <AE04> {         [               4,          dollar ] };
1101     key <AE05> {         [               5,         percent ] };
1102     key <AE06> {         [               6,     asciicircum ] };
1103     key <AE07> {         [               7,       ampersand ] };
1104     key <AE08> {         [               8,        asterisk ] };
1105     key <AE09> {         [               9,       parenleft ] };
1106     key <AE10> {         [               0,      parenright ] };
1107     key <AE11> {         [           minus,      underscore ] };
1108     key <AE12> {         [           equal,            plus ] };
1109     key <BKSP> {
1110         type= "CTRL+ALT",
1111         symbols[Group1]= [       BackSpace, Terminate_Server ]
1112     };
1113     key  <TAB> {         [             Tab,    ISO_Left_Tab ] };
1114     key <AD01> {
1115         type= "ALPHABETIC",
1116         symbols[Group1]= [               q,               Q ]
1117     };
1118     key <AD02> {
1119         type= "ALPHABETIC",
1120         symbols[Group1]= [               w,               W ]
1121     };
1122     key <AD03> {
1123         type= "ALPHABETIC",
1124         symbols[Group1]= [               e,               E ]
1125     };
1126     key <AD04> {
1127         type= "ALPHABETIC",
1128         symbols[Group1]= [               r,               R ]
1129     };
1130     key <AD05> {
1131         type= "ALPHABETIC",
1132         symbols[Group1]= [               t,               T ]
1133     };
1134     key <AD06> {
1135         type= "ALPHABETIC",
1136         symbols[Group1]= [               y,               Y ]
1137     };
1138     key <AD07> {
1139         type= "ALPHABETIC",
1140         symbols[Group1]= [               u,               U ]
1141     };
1142     key <AD08> {
1143         type= "ALPHABETIC",
1144         symbols[Group1]= [               i,               I ]
1145     };
1146     key <AD09> {
1147         type= "ALPHABETIC",
1148         symbols[Group1]= [               o,               O ]
1149     };
1150     key <AD10> {
1151         type= "ALPHABETIC",
1152         symbols[Group1]= [               p,               P ]
1153     };
1154     key <AD11> {         [     bracketleft,       braceleft ] };
1155     key <AD12> {         [    bracketright,      braceright ] };
1156     key <RTRN> {         [          Return ] };
1157     key <LCTL> {         [       Control_L ] };
1158     key <AC01> {
1159         type= "ALPHABETIC",
1160         symbols[Group1]= [               a,               A ]
1161     };
1162     key <AC02> {
1163         type= "ALPHABETIC",
1164         symbols[Group1]= [               s,               S ]
1165     };
1166     key <AC03> {
1167         type= "ALPHABETIC",
1168         symbols[Group1]= [               d,               D ]
1169     };
1170     key <AC04> {
1171         type= "ALPHABETIC",
1172         symbols[Group1]= [               f,               F ]
1173     };
1174     key <AC05> {
1175         type= "ALPHABETIC",
1176         symbols[Group1]= [               g,               G ]
1177     };
1178     key <AC06> {
1179         type= "ALPHABETIC",
1180         symbols[Group1]= [               h,               H ]
1181     };
1182     key <AC07> {
1183         type= "ALPHABETIC",
1184         symbols[Group1]= [               j,               J ]
1185     };
1186     key <AC08> {
1187         type= "ALPHABETIC",
1188         symbols[Group1]= [               k,               K ]
1189     };
1190     key <AC09> {
1191         type= "ALPHABETIC",
1192         symbols[Group1]= [               l,               L ]
1193     };
1194     key <AC10> {         [       semicolon,           colon ] };
1195     key <AC11> {         [      apostrophe,        quotedbl ] };
1196     key <TLDE> {         [           grave,      asciitilde ] };
1197     key <LFSH> {         [         Shift_L ] };
1198     key <BKSL> {         [       backslash,             bar ] };
1199     key <AB01> {
1200         type= "ALPHABETIC",
1201         symbols[Group1]= [               z,               Z ]
1202     };
1203     key <AB02> {
1204         type= "ALPHABETIC",
1205         symbols[Group1]= [               x,               X ]
1206     };
1207     key <AB03> {
1208         type= "ALPHABETIC",
1209         symbols[Group1]= [               c,               C ]
1210     };
1211     key <AB04> {
1212         type= "ALPHABETIC",
1213         symbols[Group1]= [               v,               V ]
1214     };
1215     key <AB05> {
1216         type= "ALPHABETIC",
1217         symbols[Group1]= [               b,               B ]
1218     };
1219     key <AB06> {
1220         type= "ALPHABETIC",
1221         symbols[Group1]= [               n,               N ]
1222     };
1223     key <AB07> {
1224         type= "ALPHABETIC",
1225         symbols[Group1]= [               m,               M ]
1226     };
1227     key <AB08> {         [           comma,            less ] };
1228     key <AB09> {         [          period,         greater ] };
1229     key <AB10> {         [           slash,        question ] };
1230     key <RTSH> {         [         Shift_R ] };
1231     key <KPMU> {
1232         type= "CTRL+ALT",
1233         symbols[Group1]= [     KP_Multiply,  XF86_ClearGrab ]
1234     };
1235     key <LALT> {         [           Alt_L,          Meta_L ] };
1236     key <SPCE> {         [           space ] };
1237     key <CAPS> {         [       Control_L,       Control_L ] };
1238     key <FK01> {
1239         type= "CTRL+ALT",
1240         symbols[Group1]= [              F1, XF86_Switch_VT_1 ]
1241     };
1242     key <FK02> {
1243         type= "CTRL+ALT",
1244         symbols[Group1]= [              F2, XF86_Switch_VT_2 ]
1245     };
1246     key <FK03> {
1247         type= "CTRL+ALT",
1248         symbols[Group1]= [              F3, XF86_Switch_VT_3 ]
1249     };
1250     key <FK04> {
1251         type= "CTRL+ALT",
1252         symbols[Group1]= [              F4, XF86_Switch_VT_4 ]
1253     };
1254     key <FK05> {
1255         type= "CTRL+ALT",
1256         symbols[Group1]= [              F5, XF86_Switch_VT_5 ]
1257     };
1258     key <FK06> {
1259         type= "CTRL+ALT",
1260         symbols[Group1]= [              F6, XF86_Switch_VT_6 ]
1261     };
1262     key <FK07> {
1263         type= "CTRL+ALT",
1264         symbols[Group1]= [              F7, XF86_Switch_VT_7 ]
1265     };
1266     key <FK08> {
1267         type= "CTRL+ALT",
1268         symbols[Group1]= [              F8, XF86_Switch_VT_8 ]
1269     };
1270     key <FK09> {
1271         type= "CTRL+ALT",
1272         symbols[Group1]= [              F9, XF86_Switch_VT_9 ]
1273     };
1274     key <FK10> {
1275         type= "CTRL+ALT",
1276         symbols[Group1]= [             F10, XF86_Switch_VT_10 ]
1277     };
1278     key <NMLK> {         [        Num_Lock, Pointer_EnableKeys ] };
1279     key <SCLK> {         [     Scroll_Lock ] };
1280     key  <KP7> {         [         KP_Home,            KP_7 ] };
1281     key  <KP8> {         [           KP_Up,            KP_8 ] };
1282     key  <KP9> {         [        KP_Prior,            KP_9 ] };
1283     key <KPSU> {
1284         type= "CTRL+ALT",
1285         symbols[Group1]= [     KP_Subtract, XF86_Prev_VMode ]
1286     };
1287     key  <KP4> {         [         KP_Left,            KP_4 ] };
1288     key  <KP5> {         [        KP_Begin,            KP_5 ] };
1289     key  <KP6> {         [        KP_Right,            KP_6 ] };
1290     key <KPAD> {
1291         type= "CTRL+ALT",
1292         symbols[Group1]= [          KP_Add, XF86_Next_VMode ]
1293     };
1294     key  <KP1> {         [          KP_End,            KP_1 ] };
1295     key  <KP2> {         [         KP_Down,            KP_2 ] };
1296     key  <KP3> {         [         KP_Next,            KP_3 ] };
1297     key  <KP0> {         [       KP_Insert,            KP_0 ] };
1298     key <KPDL> {         [       KP_Delete,      KP_Decimal ] };
1299     key <MDSW> {         [     Mode_switch ] };
1300     key <LSGT> {
1301         type= "FOUR_LEVEL",
1302         symbols[Group1]= [            less,         greater,             bar,       brokenbar ]
1303     };
1304     key <FK11> {
1305         type= "CTRL+ALT",
1306         symbols[Group1]= [             F11, XF86_Switch_VT_11 ]
1307     };
1308     key <FK12> {
1309         type= "CTRL+ALT",
1310         symbols[Group1]= [             F12, XF86_Switch_VT_12 ]
1311     };
1312     key <HOME> {         [            Home ] };
1313     key   <UP> {         [              Up ] };
1314     key <PGUP> {         [           Prior ] };
1315     key <LEFT> {         [            Left ] };
1316     key <RGHT> {         [           Right ] };
1317     key  <END> {         [             End ] };
1318     key <DOWN> {         [            Down ] };
1319     key <PGDN> {         [            Next ] };
1320     key  <INS> {         [          Insert ] };
1321     key <DELE> {         [          Delete ] };
1322     key <KPEN> {         [        KP_Enter ] };
1323     key <RCTL> {         [       Control_R ] };
1324     key <PAUS> {
1325         type= "PC_CONTROL_LEVEL2",
1326         symbols[Group1]= [           Pause,           Break ]
1327     };
1328     key <PRSC> {
1329         type= "PC_ALT_LEVEL2",
1330         symbols[Group1]= [           Print,         Sys_Req ]
1331     };
1332     key <KPDV> {
1333         type= "CTRL+ALT",
1334         symbols[Group1]= [       KP_Divide,     XF86_Ungrab ]
1335     };
1336     key <RALT> {         [           Alt_R,          Meta_R ] };
1337     key <LWIN> {         [         Super_L ] };
1338     key <RWIN> {         [         Super_R ] };
1339     key <MENU> {         [            Menu ] };
1340     key <LVL3> {         [ ISO_Level3_Shift ] };
1341     key  <ALT> {         [        NoSymbol,           Alt_L ] };
1342     key <KPEQ> {         [        KP_Equal ] };
1343     key <SUPR> {         [        NoSymbol,         Super_L ] };
1344     key <HYPR> {         [        NoSymbol,         Hyper_L ] };
1345     key <META> {         [        NoSymbol,          Meta_L ] };
1346     key <OUTP> {         [     XF86Display ] };
1347     key <KITG> {         [ XF86KbdLightOnOff ] };
1348     key <KIDN> {         [ XF86KbdBrightnessDown ] };
1349     key <KIUP> {         [ XF86KbdBrightnessUp ] };
1350     modifier_map Control { <LCTL> };
1351     modifier_map Shift { <LFSH> };
1352     modifier_map Shift { <RTSH> };
1353     modifier_map Mod1 { <LALT> };
1354     modifier_map Mod4 { <CAPS> };
1355     modifier_map Mod2 { <NMLK> };
1356     modifier_map Mod5 { <MDSW> };
1357     modifier_map Control { <RCTL> };
1358     modifier_map Mod1 { <RALT> };
1359     modifier_map Mod5 { <LVL3> };
1360     modifier_map Mod4 { <SUPR> };
1361     modifier_map Mod4 { <HYPR> };
1362     modifier_map Mod1 { <META> };
1363 };
1364
1365 xkb_geometry "pc(pc104)" {
1366
1367     width=       470;
1368     height=      210;
1369
1370     alias <AC00> = <CAPS>;
1371     alias <AA00> = <LCTL>;
1372
1373     baseColor=   "white";
1374     labelColor=  "black";
1375     xfont=       "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
1376     description= "Generic 104";
1377
1378     shape "NORM" {
1379         corner= 1,
1380         { [  18,  18 ] },
1381         { [   2,   1 ], [  16,  16 ] }
1382     };
1383     shape "BKSP" {
1384         corner= 1,
1385         { [  38,  18 ] },
1386         { [   2,   1 ], [  36,  16 ] }
1387     };
1388     shape "TABK" {
1389         corner= 1,
1390         { [  28,  18 ] },
1391         { [   2,   1 ], [  26,  16 ] }
1392     };
1393     shape "BKSL" {
1394         corner= 1,
1395         { [  28,  18 ] },
1396         { [   2,   1 ], [  26,  16 ] }
1397     };
1398     shape "RTRN" {
1399         corner= 1,
1400         { [  42,  18 ] },
1401         { [   2,   1 ], [  40,  16 ] }
1402     };
1403     shape "CAPS" {
1404         corner= 1,
1405         { [  33,  18 ] },
1406         { [   2,   1 ], [  31,  16 ] }
1407     };
1408     shape "LFSH" {
1409         corner= 1,
1410         { [  42,  18 ] },
1411         { [   2,   1 ], [  40,  16 ] }
1412     };
1413     shape "RTSH" {
1414         corner= 1,
1415         { [  52,  18 ] },
1416         { [   2,   1 ], [  50,  16 ] }
1417     };
1418     shape "MODK" {
1419         corner= 1,
1420         { [  27,  18 ] },
1421         { [   2,   1 ], [  25,  16 ] }
1422     };
1423     shape "SMOD" {
1424         corner= 1,
1425         { [  23,  18 ] },
1426         { [   2,   1 ], [  21,  16 ] }
1427     };
1428     shape "SPCE" {
1429         corner= 1,
1430         { [ 113,  18 ] },
1431         { [   2,   1 ], [ 111,  16 ] }
1432     };
1433     shape "KP0" {
1434         corner= 1,
1435         { [  37,  18 ] },
1436         { [   2,   1 ], [  35,  16 ] }
1437     };
1438     shape "KPAD" {
1439         corner= 1,
1440         { [  18,  37 ] },
1441         { [   2,   1 ], [  16,  35 ] }
1442     };
1443     shape "LEDS" { { [  75,  20 ] } };
1444     shape "LED" { { [   5,   1 ] } };
1445     section "Function" {
1446         key.color= "grey20";
1447         priority=  7;
1448         top=       52;
1449         left=      19;
1450         width=     351;
1451         height=    19;
1452         row {
1453             top=  1;
1454             left= 1;
1455             keys {
1456                 {  <ESC>, "NORM",   1 },
1457                 { <FK01>, "NORM",  20, color="white" },
1458                 { <FK02>, "NORM",   1, color="white" },
1459                 { <FK03>, "NORM",   1, color="white" },
1460                 { <FK04>, "NORM",   1, color="white" },
1461                 { <FK05>, "NORM",  11, color="white" },
1462                 { <FK06>, "NORM",   1, color="white" },
1463                 { <FK07>, "NORM",   1, color="white" },
1464                 { <FK08>, "NORM",   1, color="white" },
1465                 { <FK09>, "NORM",  11, color="white" },
1466                 { <FK10>, "NORM",   1, color="white" },
1467                 { <FK11>, "NORM",   1, color="white" },
1468                 { <FK12>, "NORM",   1, color="white" },
1469                 { <PRSC>, "NORM",   8, color="white" },
1470                 { <SCLK>, "NORM",   1, color="white" },
1471                 { <PAUS>, "NORM",   1, color="white" }
1472             };
1473         };
1474     }; // End of "Function" section
1475
1476     section "Alpha" {
1477         key.color= "white";
1478         priority=  8;
1479         top=       91;
1480         left=      19;
1481         width=     287;
1482         height=    95;
1483         row {
1484             top=  1;
1485             left= 1;
1486             keys {
1487                 { <TLDE>, "NORM",   1 }, { <AE01>, "NORM",   1 },
1488                 { <AE02>, "NORM",   1 }, { <AE03>, "NORM",   1 },
1489                 { <AE04>, "NORM",   1 }, { <AE05>, "NORM",   1 },
1490                 { <AE06>, "NORM",   1 }, { <AE07>, "NORM",   1 },
1491                 { <AE08>, "NORM",   1 }, { <AE09>, "NORM",   1 },
1492                 { <AE10>, "NORM",   1 }, { <AE11>, "NORM",   1 },
1493                 { <AE12>, "NORM",   1 },
1494                 { <BKSP>, "BKSP",   1, color="grey20" }
1495             };
1496         };
1497         row {
1498             top=  20;
1499             left= 1;
1500             keys {
1501                 {  <TAB>, "TABK",   1, color="grey20" },
1502                 { <AD01>, "NORM",   1 }, { <AD02>, "NORM",   1 },
1503                 { <AD03>, "NORM",   1 }, { <AD04>, "NORM",   1 },
1504                 { <AD05>, "NORM",   1 }, { <AD06>, "NORM",   1 },
1505                 { <AD07>, "NORM",   1 }, { <AD08>, "NORM",   1 },
1506                 { <AD09>, "NORM",   1 }, { <AD10>, "NORM",   1 },
1507                 { <AD11>, "NORM",   1 }, { <AD12>, "NORM",   1 },
1508                 { <BKSL>, "BKSL",   1 }
1509             };
1510         };
1511         row {
1512             top=  39;
1513             left= 1;
1514             keys {
1515                 { <CAPS>, "CAPS",   1, color="grey20" },
1516                 { <AC01>, "NORM",   1 }, { <AC02>, "NORM",   1 },
1517                 { <AC03>, "NORM",   1 }, { <AC04>, "NORM",   1 },
1518                 { <AC05>, "NORM",   1 }, { <AC06>, "NORM",   1 },
1519                 { <AC07>, "NORM",   1 }, { <AC08>, "NORM",   1 },
1520                 { <AC09>, "NORM",   1 }, { <AC10>, "NORM",   1 },
1521                 { <AC11>, "NORM",   1 },
1522                 { <RTRN>, "RTRN",   1, color="grey20" }
1523             };
1524         };
1525         row {
1526             top=  58;
1527             left= 1;
1528             keys {
1529                 { <LFSH>, "LFSH",   1, color="grey20" },
1530                 { <AB01>, "NORM",   1 }, { <AB02>, "NORM",   1 },
1531                 { <AB03>, "NORM",   1 }, { <AB04>, "NORM",   1 },
1532                 { <AB05>, "NORM",   1 }, { <AB06>, "NORM",   1 },
1533                 { <AB07>, "NORM",   1 }, { <AB08>, "NORM",   1 },
1534                 { <AB09>, "NORM",   1 }, { <AB10>, "NORM",   1 },
1535                 { <RTSH>, "RTSH",   1, color="grey20" }
1536             };
1537         };
1538         row {
1539             top=  77;
1540             left= 1;
1541             keys {
1542                 { <LCTL>, "MODK",   1, color="grey20" },
1543                 { <LWIN>, "SMOD",   1, color="grey20" },
1544                 { <LALT>, "SMOD",   1, color="grey20" },
1545                 { <SPCE>, "SPCE",   1 },
1546                 { <RALT>, "SMOD",   1, color="grey20" },
1547                 { <RWIN>, "SMOD",   1, color="grey20" },
1548                 { <MENU>, "SMOD",   1, color="grey20" },
1549                 { <RCTL>, "SMOD",   1, color="grey20" }
1550             };
1551         };
1552     }; // End of "Alpha" section
1553
1554     section "Editing" {
1555         key.color= "grey20";
1556         priority=  9;
1557         top=       91;
1558         left=      312;
1559         width=     58;
1560         height=    95;
1561         row {
1562             top=  1;
1563             left= 1;
1564             keys {
1565                 {  <INS>, "NORM",   1 }, { <HOME>, "NORM",   1 },
1566                 { <PGUP>, "NORM",   1 }
1567             };
1568         };
1569         row {
1570             top=  20;
1571             left= 1;
1572             keys {
1573                 { <DELE>, "NORM",   1 }, {  <END>, "NORM",   1 },
1574                 { <PGDN>, "NORM",   1 }
1575             };
1576         };
1577         row {
1578             top=  58;
1579             left= 20;
1580             keys {
1581                 {   <UP>, "NORM",   1 }
1582             };
1583         };
1584         row {
1585             top=  77;
1586             left= 1;
1587             keys {
1588                 { <LEFT>, "NORM",   1 }, { <DOWN>, "NORM",   1 },
1589                 { <RGHT>, "NORM",   1 }
1590             };
1591         };
1592     }; // End of "Editing" section
1593
1594     section "Keypad" {
1595         key.color= "grey20";
1596         priority=  10;
1597         top=       91;
1598         left=      376;
1599         width=     77;
1600         height=    95;
1601         row {
1602             top=  1;
1603             left= 1;
1604             keys {
1605                 { <NMLK>, "NORM",   1 }, { <KPDV>, "NORM",   1 },
1606                 { <KPMU>, "NORM",   1 }, { <KPSU>, "NORM",   1 }
1607             };
1608         };
1609         row {
1610             top=  20;
1611             left= 1;
1612             keys {
1613                 {  <KP7>, "NORM",   1, color="white" },
1614                 {  <KP8>, "NORM",   1, color="white" },
1615                 {  <KP9>, "NORM",   1, color="white" },
1616                 { <KPAD>, "KPAD",   1 }
1617             };
1618         };
1619         row {
1620             top=  39;
1621             left= 1;
1622             keys {
1623                 {  <KP4>, "NORM",   1, color="white" },
1624                 {  <KP5>, "NORM",   1, color="white" },
1625                 {  <KP6>, "NORM",   1, color="white" }
1626             };
1627         };
1628         row {
1629             top=  58;
1630             left= 1;
1631             keys {
1632                 {  <KP1>, "NORM",   1, color="white" },
1633                 {  <KP2>, "NORM",   1, color="white" },
1634                 {  <KP3>, "NORM",   1, color="white" },
1635                 { <KPEN>, "KPAD",   1 }
1636             };
1637         };
1638         row {
1639             top=  77;
1640             left= 1;
1641             keys {
1642                 {  <KP0>, "KP0",   1, color="white" },
1643                 { <KPDL>, "NORM",   1, color="white" }
1644             };
1645         };
1646     }; // End of "Keypad" section
1647
1648     solid "LedPanel" {
1649         top=      52;
1650         left=     377;
1651         priority= 0;
1652         color= "grey10";
1653         shape= "LEDS";
1654     };
1655     indicator "Num Lock" {
1656         top=      67;
1657         left=     382;
1658         priority= 1;
1659         onColor= "green";
1660         offColor= "green30";
1661         shape= "LED";
1662     };
1663     indicator "Caps Lock" {
1664         top=      67;
1665         left=     407;
1666         priority= 2;
1667         onColor= "green";
1668         offColor= "green30";
1669         shape= "LED";
1670     };
1671     indicator "Scroll Lock" {
1672         top=      67;
1673         left=     433;
1674         priority= 3;
1675         onColor= "green";
1676         offColor= "green30";
1677         shape= "LED";
1678     };
1679     text "NumLockLabel" {
1680         top=      55;
1681         left=     378;
1682         priority= 4;
1683         width=  19.8;
1684         height=  10;
1685         XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
1686         text=  "Num\nLock";
1687     };
1688     text "CapsLockLabel" {
1689         top=      55;
1690         left=     403;
1691         priority= 5;
1692         width=  26.4;
1693         height=  10;
1694         XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
1695         text=  "Caps\nLock";
1696     };
1697     text "ScrollLockLabel" {
1698         top=      55;
1699         left=     428;
1700         priority= 6;
1701         width=  39.6;
1702         height=  10;
1703         XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
1704         text=  "Scroll\nLock";
1705     };
1706 };
1707
1708 };