• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1xkb_keymap {
2xkb_keycodes "empty_aliases(qwerty)" {
3    minimum = 8;
4    maximum = 255;
5    virtual indicator 1 = "Caps Lock";
6    virtual indicator 2 = "Num Lock";
7    virtual indicator 3 = "Shift Lock";
8    virtual indicator 4 = "Group 2";
9    virtual indicator 5 = "Mouse Keys";
10    virtual indicator 6 = "Scroll Lock";
11};
12
13xkb_types "complete" {
14
15    virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
16
17    type "ONE_LEVEL" {
18        modifiers= none;
19        level_name[Level1]= "Any";
20    };
21    type "TWO_LEVEL" {
22        modifiers= Shift;
23        map[Shift]= Level2;
24        level_name[Level1]= "Base";
25        level_name[Level2]= "Shift";
26    };
27    type "ALPHABETIC" {
28        modifiers= Shift+Lock;
29        map[Shift]= Level2;
30        map[Lock]= Level2;
31        level_name[Level1]= "Base";
32        level_name[Level2]= "Caps";
33    };
34    type "KEYPAD" {
35        modifiers= Shift+NumLock;
36        map[Shift]= Level2;
37        map[NumLock]= Level2;
38        level_name[Level1]= "Base";
39        level_name[Level2]= "Number";
40    };
41    type "SHIFT+ALT" {
42        modifiers= Shift+Alt;
43        map[Shift+Alt]= Level2;
44        level_name[Level1]= "Base";
45        level_name[Level2]= "Shift+Alt";
46    };
47    type "PC_CONTROL_LEVEL2" {
48        modifiers= Control;
49        map[Control]= Level2;
50        level_name[Level1]= "Base";
51        level_name[Level2]= "Control";
52    };
53    type "PC_LCONTROL_LEVEL2" {
54        modifiers= LControl;
55        map[LControl]= Level2;
56        level_name[Level1]= "Base";
57        level_name[Level2]= "LControl";
58    };
59    type "PC_RCONTROL_LEVEL2" {
60        modifiers= RControl;
61        map[RControl]= Level2;
62        level_name[Level1]= "Base";
63        level_name[Level2]= "RControl";
64    };
65    type "PC_ALT_LEVEL2" {
66        modifiers= Alt;
67        map[Alt]= Level2;
68        level_name[Level1]= "Base";
69        level_name[Level2]= "Alt";
70    };
71    type "PC_LALT_LEVEL2" {
72        modifiers= LAlt;
73        map[LAlt]= Level2;
74        level_name[Level1]= "Base";
75        level_name[Level2]= "LAlt";
76    };
77    type "PC_RALT_LEVEL2" {
78        modifiers= RAlt;
79        map[RAlt]= Level2;
80        level_name[Level1]= "Base";
81        level_name[Level2]= "RAlt";
82    };
83    type "CTRL+ALT" {
84        modifiers= Control+Alt;
85        map[Control+Alt]= Level2;
86        level_name[Level1]= "Base";
87        level_name[Level2]= "Ctrl+Alt";
88    };
89    type "LOCAL_EIGHT_LEVEL" {
90        modifiers= Shift+Lock+Control+LevelThree;
91        map[Shift]= Level2;
92        map[Lock]= Level2;
93        map[LevelThree]= Level3;
94        map[Shift+Lock+LevelThree]= Level3;
95        map[Shift+LevelThree]= Level4;
96        map[Lock+LevelThree]= Level4;
97        map[Control]= Level5;
98        map[Shift+Lock+Control]= Level5;
99        map[Shift+Control]= Level6;
100        map[Lock+Control]= Level6;
101        map[Control+LevelThree]= Level7;
102        map[Shift+Lock+Control+LevelThree]= Level7;
103        map[Shift+Control+LevelThree]= Level8;
104        map[Lock+Control+LevelThree]= Level8;
105        level_name[Level1]= "Base";
106        level_name[Level2]= "Shift";
107        level_name[Level3]= "Level3";
108        level_name[Level4]= "Shift Level3";
109        level_name[Level5]= "Ctrl";
110        level_name[Level6]= "Shift Ctrl";
111        level_name[Level7]= "Level3 Ctrl";
112        level_name[Level8]= "Shift Level3 Ctrl";
113    };
114    type "THREE_LEVEL" {
115        modifiers= Shift+LevelThree;
116        map[Shift]= Level2;
117        map[LevelThree]= Level3;
118        map[Shift+LevelThree]= Level3;
119        level_name[Level1]= "Base";
120        level_name[Level2]= "Shift";
121        level_name[Level3]= "Level3";
122    };
123    type "EIGHT_LEVEL" {
124        modifiers= Shift+LevelThree+LevelFive;
125        map[Shift]= Level2;
126        map[LevelThree]= Level3;
127        map[Shift+LevelThree]= Level4;
128        map[LevelFive]= Level5;
129        map[Shift+LevelFive]= Level6;
130        map[LevelThree+LevelFive]= Level7;
131        map[Shift+LevelThree+LevelFive]= Level8;
132        level_name[Level1]= "Base";
133        level_name[Level2]= "Shift";
134        level_name[Level3]= "Alt Base";
135        level_name[Level4]= "Shift Alt";
136        level_name[Level5]= "X";
137        level_name[Level6]= "X Shift";
138        level_name[Level7]= "X Alt Base";
139        level_name[Level8]= "X Shift Alt";
140    };
141    type "EIGHT_LEVEL_ALPHABETIC" {
142        modifiers= Shift+Lock+LevelThree+LevelFive;
143        map[Shift]= Level2;
144        map[Lock]= Level2;
145        map[LevelThree]= Level3;
146        map[Shift+LevelThree]= Level4;
147        map[Lock+LevelThree]= Level4;
148        map[Shift+Lock+LevelThree]= Level3;
149        map[LevelFive]= Level5;
150        map[Shift+LevelFive]= Level6;
151        map[Lock+LevelFive]= Level6;
152        map[LevelThree+LevelFive]= Level7;
153        map[Shift+LevelThree+LevelFive]= Level8;
154        map[Lock+LevelThree+LevelFive]= Level8;
155        map[Shift+Lock+LevelThree+LevelFive]= Level7;
156        level_name[Level1]= "Base";
157        level_name[Level2]= "Shift";
158        level_name[Level3]= "Alt Base";
159        level_name[Level4]= "Shift Alt";
160        level_name[Level5]= "X";
161        level_name[Level6]= "X Shift";
162        level_name[Level7]= "X Alt Base";
163        level_name[Level8]= "X Shift Alt";
164    };
165    type "EIGHT_LEVEL_SEMIALPHABETIC" {
166        modifiers= Shift+Lock+LevelThree+LevelFive;
167        map[Shift]= Level2;
168        map[Lock]= Level2;
169        map[LevelThree]= Level3;
170        map[Shift+LevelThree]= Level4;
171        map[Lock+LevelThree]= Level3;
172        preserve[Lock+LevelThree]= Lock;
173        map[Shift+Lock+LevelThree]= Level4;
174        preserve[Shift+Lock+LevelThree]= Lock;
175        map[LevelFive]= Level5;
176        map[Shift+LevelFive]= Level6;
177        map[Lock+LevelFive]= Level6;
178        preserve[Lock+LevelFive]= Lock;
179        map[LevelThree+LevelFive]= Level7;
180        map[Shift+LevelThree+LevelFive]= Level8;
181        map[Lock+LevelThree+LevelFive]= Level7;
182        preserve[Lock+LevelThree+LevelFive]= Lock;
183        map[Shift+Lock+LevelThree+LevelFive]= Level8;
184        preserve[Shift+Lock+LevelThree+LevelFive]= Lock;
185        map[Shift+Lock+LevelFive]= Level1;
186        preserve[Shift+Lock+LevelFive]= Lock;
187        level_name[Level1]= "Base";
188        level_name[Level2]= "Shift";
189        level_name[Level3]= "Alt Base";
190        level_name[Level4]= "Shift Alt";
191        level_name[Level5]= "X";
192        level_name[Level6]= "X Shift";
193        level_name[Level7]= "X Alt Base";
194        level_name[Level8]= "X Shift Alt";
195    };
196    type "FOUR_LEVEL" {
197        modifiers= Shift+LevelThree;
198        map[Shift]= Level2;
199        map[LevelThree]= Level3;
200        map[Shift+LevelThree]= Level4;
201        level_name[Level1]= "Base";
202        level_name[Level2]= "Shift";
203        level_name[Level3]= "Alt Base";
204        level_name[Level4]= "Shift Alt";
205    };
206    type "FOUR_LEVEL_ALPHABETIC" {
207        modifiers= Shift+Lock+LevelThree;
208        map[Shift]= Level2;
209        map[Lock]= Level2;
210        map[LevelThree]= Level3;
211        map[Shift+LevelThree]= Level4;
212        map[Lock+LevelThree]= Level4;
213        map[Shift+Lock+LevelThree]= Level3;
214        level_name[Level1]= "Base";
215        level_name[Level2]= "Shift";
216        level_name[Level3]= "Alt Base";
217        level_name[Level4]= "Shift Alt";
218    };
219    type "FOUR_LEVEL_SEMIALPHABETIC" {
220        modifiers= Shift+Lock+LevelThree;
221        map[Shift]= Level2;
222        map[Lock]= Level2;
223        map[LevelThree]= Level3;
224        map[Shift+LevelThree]= Level4;
225        map[Lock+LevelThree]= Level3;
226        preserve[Lock+LevelThree]= Lock;
227        map[Shift+Lock+LevelThree]= Level4;
228        preserve[Shift+Lock+LevelThree]= Lock;
229        level_name[Level1]= "Base";
230        level_name[Level2]= "Shift";
231        level_name[Level3]= "Alt Base";
232        level_name[Level4]= "Shift Alt";
233    };
234    type "FOUR_LEVEL_MIXED_KEYPAD" {
235        modifiers= Shift+NumLock+LevelThree;
236        map[NumLock]= Level2;
237        map[Shift]= Level2;
238        map[LevelThree]= Level3;
239        map[NumLock+LevelThree]= Level3;
240        map[Shift+LevelThree]= Level4;
241        map[Shift+NumLock+LevelThree]= Level4;
242        level_name[Level1]= "Base";
243        level_name[Level2]= "Number";
244        level_name[Level3]= "Alt Base";
245        level_name[Level4]= "Shift Alt";
246    };
247    type "FOUR_LEVEL_X" {
248        modifiers= Shift+Control+Alt+LevelThree;
249        map[LevelThree]= Level2;
250        map[Shift+LevelThree]= Level3;
251        map[Control+Alt]= Level4;
252        level_name[Level1]= "Base";
253        level_name[Level2]= "Alt Base";
254        level_name[Level3]= "Shift Alt";
255        level_name[Level4]= "Ctrl+Alt";
256    };
257    type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" {
258        modifiers= Shift+Lock+LevelThree;
259        map[Shift]= Level2;
260        map[Lock]= Level4;
261        preserve[Lock]= Lock;
262        map[LevelThree]= Level3;
263        map[Shift+LevelThree]= Level4;
264        map[Lock+LevelThree]= Level3;
265        preserve[Lock+LevelThree]= Lock;
266        map[Shift+Lock+LevelThree]= Level3;
267        level_name[Level1]= "Base";
268        level_name[Level2]= "Shift";
269        level_name[Level3]= "AltGr Base";
270        level_name[Level4]= "Shift AltGr";
271    };
272    type "FOUR_LEVEL_PLUS_LOCK" {
273        modifiers= Shift+Lock+LevelThree;
274        map[Shift]= Level2;
275        map[LevelThree]= Level3;
276        map[Shift+LevelThree]= Level4;
277        map[Lock]= Level5;
278        map[Shift+Lock]= Level2;
279        map[Lock+LevelThree]= Level3;
280        map[Shift+Lock+LevelThree]= Level4;
281        level_name[Level1]= "Base";
282        level_name[Level2]= "Shift";
283        level_name[Level3]= "Alt Base";
284        level_name[Level4]= "Shift Alt";
285        level_name[Level5]= "Lock";
286    };
287    type "FOUR_LEVEL_KEYPAD" {
288        modifiers= Shift+NumLock+LevelThree;
289        map[Shift]= Level2;
290        map[NumLock]= Level2;
291        map[LevelThree]= Level3;
292        map[Shift+LevelThree]= Level4;
293        map[NumLock+LevelThree]= Level4;
294        map[Shift+NumLock+LevelThree]= Level3;
295        level_name[Level1]= "Base";
296        level_name[Level2]= "Number";
297        level_name[Level3]= "Alt Base";
298        level_name[Level4]= "Alt Number";
299    };
300};
301
302xkb_compatibility "complete" {
303
304    virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
305
306    interpret.useModMapMods= AnyLevel;
307    interpret.repeat= False;
308    interpret.locking= False;
309    interpret ISO_Level2_Latch+Exactly(Shift) {
310        useModMapMods=level1;
311        action= LatchMods(modifiers=Shift,clearLocks,latchToLock);
312    };
313    interpret Shift_Lock+AnyOf(Shift+Lock) {
314        action= LockMods(modifiers=Shift);
315    };
316    interpret Num_Lock+AnyOf(all) {
317        virtualModifier= NumLock;
318        action= LockMods(modifiers=NumLock);
319    };
320    interpret ISO_Lock+AnyOf(all) {
321        action= ISOLock(modifiers=modMapMods,affect=all);
322    };
323    interpret ISO_Level3_Shift+AnyOf(all) {
324        virtualModifier= LevelThree;
325        useModMapMods=level1;
326        action= SetMods(modifiers=LevelThree,clearLocks);
327    };
328    interpret ISO_Level3_Latch+AnyOf(all) {
329        virtualModifier= LevelThree;
330        useModMapMods=level1;
331        action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
332    };
333    interpret ISO_Level3_Lock+AnyOf(all) {
334        virtualModifier= LevelThree;
335        useModMapMods=level1;
336        action= LockMods(modifiers=LevelThree);
337    };
338    interpret Alt_L+AnyOf(all) {
339        virtualModifier= Alt;
340        action= SetMods(modifiers=modMapMods,clearLocks);
341    };
342    interpret Alt_R+AnyOf(all) {
343        virtualModifier= Alt;
344        action= SetMods(modifiers=modMapMods,clearLocks);
345    };
346    interpret Meta_L+AnyOf(all) {
347        virtualModifier= Meta;
348        action= SetMods(modifiers=modMapMods,clearLocks);
349    };
350    interpret Meta_R+AnyOf(all) {
351        virtualModifier= Meta;
352        action= SetMods(modifiers=modMapMods,clearLocks);
353    };
354    interpret Super_L+AnyOf(all) {
355        virtualModifier= Super;
356        action= SetMods(modifiers=modMapMods,clearLocks);
357    };
358    interpret Super_R+AnyOf(all) {
359        virtualModifier= Super;
360        action= SetMods(modifiers=modMapMods,clearLocks);
361    };
362    interpret Hyper_L+AnyOf(all) {
363        virtualModifier= Hyper;
364        action= SetMods(modifiers=modMapMods,clearLocks);
365    };
366    interpret Hyper_R+AnyOf(all) {
367        virtualModifier= Hyper;
368        action= SetMods(modifiers=modMapMods,clearLocks);
369    };
370    interpret Scroll_Lock+AnyOf(all) {
371        virtualModifier= ScrollLock;
372        action= LockMods(modifiers=modMapMods);
373    };
374    interpret ISO_Level5_Shift+AnyOf(all) {
375        virtualModifier= LevelFive;
376        useModMapMods=level1;
377        action= SetMods(modifiers=LevelFive,clearLocks);
378    };
379    interpret ISO_Level5_Latch+AnyOf(all) {
380        virtualModifier= LevelFive;
381        action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
382    };
383    interpret ISO_Level5_Lock+AnyOf(all) {
384        virtualModifier= LevelFive;
385        action= LockMods(modifiers=LevelFive);
386    };
387    interpret Mode_switch+AnyOfOrNone(all) {
388        virtualModifier= AltGr;
389        useModMapMods=level1;
390        action= SetGroup(group=+1);
391    };
392    interpret ISO_Level3_Shift+AnyOfOrNone(all) {
393        action= SetMods(modifiers=LevelThree,clearLocks);
394    };
395    interpret ISO_Level3_Latch+AnyOfOrNone(all) {
396        action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
397    };
398    interpret ISO_Level3_Lock+AnyOfOrNone(all) {
399        action= LockMods(modifiers=LevelThree);
400    };
401    interpret ISO_Group_Latch+AnyOfOrNone(all) {
402        virtualModifier= AltGr;
403        useModMapMods=level1;
404        action= LatchGroup(group=2);
405    };
406    interpret ISO_Next_Group+AnyOfOrNone(all) {
407        virtualModifier= AltGr;
408        useModMapMods=level1;
409        action= LockGroup(group=+1);
410    };
411    interpret ISO_Prev_Group+AnyOfOrNone(all) {
412        virtualModifier= AltGr;
413        useModMapMods=level1;
414        action= LockGroup(group=-1);
415    };
416    interpret ISO_First_Group+AnyOfOrNone(all) {
417        action= LockGroup(group=1);
418    };
419    interpret ISO_Last_Group+AnyOfOrNone(all) {
420        action= LockGroup(group=2);
421    };
422    interpret KP_1+AnyOfOrNone(all) {
423        repeat= True;
424        action= MovePtr(x=-1,y=+1);
425    };
426    interpret KP_End+AnyOfOrNone(all) {
427        repeat= True;
428        action= MovePtr(x=-1,y=+1);
429    };
430    interpret KP_2+AnyOfOrNone(all) {
431        repeat= True;
432        action= MovePtr(x=+0,y=+1);
433    };
434    interpret KP_Down+AnyOfOrNone(all) {
435        repeat= True;
436        action= MovePtr(x=+0,y=+1);
437    };
438    interpret KP_3+AnyOfOrNone(all) {
439        repeat= True;
440        action= MovePtr(x=+1,y=+1);
441    };
442    interpret KP_Next+AnyOfOrNone(all) {
443        repeat= True;
444        action= MovePtr(x=+1,y=+1);
445    };
446    interpret KP_4+AnyOfOrNone(all) {
447        repeat= True;
448        action= MovePtr(x=-1,y=+0);
449    };
450    interpret KP_Left+AnyOfOrNone(all) {
451        repeat= True;
452        action= MovePtr(x=-1,y=+0);
453    };
454    interpret KP_6+AnyOfOrNone(all) {
455        repeat= True;
456        action= MovePtr(x=+1,y=+0);
457    };
458    interpret KP_Right+AnyOfOrNone(all) {
459        repeat= True;
460        action= MovePtr(x=+1,y=+0);
461    };
462    interpret KP_7+AnyOfOrNone(all) {
463        repeat= True;
464        action= MovePtr(x=-1,y=-1);
465    };
466    interpret KP_Home+AnyOfOrNone(all) {
467        repeat= True;
468        action= MovePtr(x=-1,y=-1);
469    };
470    interpret KP_8+AnyOfOrNone(all) {
471        repeat= True;
472        action= MovePtr(x=+0,y=-1);
473    };
474    interpret KP_Up+AnyOfOrNone(all) {
475        repeat= True;
476        action= MovePtr(x=+0,y=-1);
477    };
478    interpret KP_9+AnyOfOrNone(all) {
479        repeat= True;
480        action= MovePtr(x=+1,y=-1);
481    };
482    interpret KP_Prior+AnyOfOrNone(all) {
483        repeat= True;
484        action= MovePtr(x=+1,y=-1);
485    };
486    interpret KP_5+AnyOfOrNone(all) {
487        repeat= True;
488        action= PtrBtn(button=default);
489    };
490    interpret KP_Begin+AnyOfOrNone(all) {
491        repeat= True;
492        action= PtrBtn(button=default);
493    };
494    interpret KP_F2+AnyOfOrNone(all) {
495        repeat= True;
496        action= SetPtrDflt(affect=button,button=1);
497    };
498    interpret KP_Divide+AnyOfOrNone(all) {
499        repeat= True;
500        action= SetPtrDflt(affect=button,button=1);
501    };
502    interpret KP_F3+AnyOfOrNone(all) {
503        repeat= True;
504        action= SetPtrDflt(affect=button,button=2);
505    };
506    interpret KP_Multiply+AnyOfOrNone(all) {
507        repeat= True;
508        action= SetPtrDflt(affect=button,button=2);
509    };
510    interpret KP_F4+AnyOfOrNone(all) {
511        repeat= True;
512        action= SetPtrDflt(affect=button,button=3);
513    };
514    interpret KP_Subtract+AnyOfOrNone(all) {
515        repeat= True;
516        action= SetPtrDflt(affect=button,button=3);
517    };
518    interpret KP_Separator+AnyOfOrNone(all) {
519        repeat= True;
520        action= PtrBtn(button=default,count=2);
521    };
522    interpret KP_Add+AnyOfOrNone(all) {
523        repeat= True;
524        action= PtrBtn(button=default,count=2);
525    };
526    interpret KP_0+AnyOfOrNone(all) {
527        repeat= True;
528        action= LockPtrBtn(button=default,affect=lock);
529    };
530    interpret KP_Insert+AnyOfOrNone(all) {
531        repeat= True;
532        action= LockPtrBtn(button=default,affect=lock);
533    };
534    interpret KP_Decimal+AnyOfOrNone(all) {
535        repeat= True;
536        action= LockPtrBtn(button=default,affect=unlock);
537    };
538    interpret KP_Delete+AnyOfOrNone(all) {
539        repeat= True;
540        action= LockPtrBtn(button=default,affect=unlock);
541    };
542    interpret F25+AnyOfOrNone(all) {
543        repeat= True;
544        action= SetPtrDflt(affect=button,button=1);
545    };
546    interpret F26+AnyOfOrNone(all) {
547        repeat= True;
548        action= SetPtrDflt(affect=button,button=2);
549    };
550    interpret F27+AnyOfOrNone(all) {
551        repeat= True;
552        action= MovePtr(x=-1,y=-1);
553    };
554    interpret F29+AnyOfOrNone(all) {
555        repeat= True;
556        action= MovePtr(x=+1,y=-1);
557    };
558    interpret F31+AnyOfOrNone(all) {
559        repeat= True;
560        action= PtrBtn(button=default);
561    };
562    interpret F33+AnyOfOrNone(all) {
563        repeat= True;
564        action= MovePtr(x=-1,y=+1);
565    };
566    interpret F35+AnyOfOrNone(all) {
567        repeat= True;
568        action= MovePtr(x=+1,y=+1);
569    };
570    interpret Pointer_Button_Dflt+AnyOfOrNone(all) {
571        action= PtrBtn(button=default);
572    };
573    interpret Pointer_Button1+AnyOfOrNone(all) {
574        action= PtrBtn(button=1);
575    };
576    interpret Pointer_Button2+AnyOfOrNone(all) {
577        action= PtrBtn(button=2);
578    };
579    interpret Pointer_Button3+AnyOfOrNone(all) {
580        action= PtrBtn(button=3);
581    };
582    interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) {
583        action= PtrBtn(button=default,count=2);
584    };
585    interpret Pointer_DblClick1+AnyOfOrNone(all) {
586        action= PtrBtn(button=1,count=2);
587    };
588    interpret Pointer_DblClick2+AnyOfOrNone(all) {
589        action= PtrBtn(button=2,count=2);
590    };
591    interpret Pointer_DblClick3+AnyOfOrNone(all) {
592        action= PtrBtn(button=3,count=2);
593    };
594    interpret Pointer_Drag_Dflt+AnyOfOrNone(all) {
595        action= LockPtrBtn(button=default,affect=both);
596    };
597    interpret Pointer_Drag1+AnyOfOrNone(all) {
598        action= LockPtrBtn(button=1,affect=both);
599    };
600    interpret Pointer_Drag2+AnyOfOrNone(all) {
601        action= LockPtrBtn(button=2,affect=both);
602    };
603    interpret Pointer_Drag3+AnyOfOrNone(all) {
604        action= LockPtrBtn(button=3,affect=both);
605    };
606    interpret Pointer_EnableKeys+AnyOfOrNone(all) {
607        action= LockControls(controls=MouseKeys);
608    };
609    interpret Pointer_Accelerate+AnyOfOrNone(all) {
610        action= LockControls(controls=MouseKeysAccel);
611    };
612    interpret Pointer_DfltBtnNext+AnyOfOrNone(all) {
613        action= SetPtrDflt(affect=button,button=+1);
614    };
615    interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) {
616        action= SetPtrDflt(affect=button,button=-1);
617    };
618    interpret AccessX_Enable+AnyOfOrNone(all) {
619        action= LockControls(controls=AccessXKeys);
620    };
621    interpret AccessX_Feedback_Enable+AnyOfOrNone(all) {
622        action= LockControls(controls=AccessXFeedback);
623    };
624    interpret RepeatKeys_Enable+AnyOfOrNone(all) {
625        action= LockControls(controls=RepeatKeys);
626    };
627    interpret SlowKeys_Enable+AnyOfOrNone(all) {
628        action= LockControls(controls=SlowKeys);
629    };
630    interpret BounceKeys_Enable+AnyOfOrNone(all) {
631        action= LockControls(controls=BounceKeys);
632    };
633    interpret StickyKeys_Enable+AnyOfOrNone(all) {
634        action= LockControls(controls=StickyKeys);
635    };
636    interpret MouseKeys_Enable+AnyOfOrNone(all) {
637        action= LockControls(controls=MouseKeys);
638    };
639    interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) {
640        action= LockControls(controls=MouseKeysAccel);
641    };
642    interpret Overlay1_Enable+AnyOfOrNone(all) {
643        action= LockControls(controls=Overlay1);
644    };
645    interpret Overlay2_Enable+AnyOfOrNone(all) {
646        action= LockControls(controls=Overlay2);
647    };
648    interpret AudibleBell_Enable+AnyOfOrNone(all) {
649        action= LockControls(controls=AudibleBell);
650    };
651    interpret Terminate_Server+AnyOfOrNone(all) {
652        action= Terminate();
653    };
654    interpret Alt_L+AnyOfOrNone(all) {
655        action= SetMods(modifiers=Alt,clearLocks);
656    };
657    interpret Alt_R+AnyOfOrNone(all) {
658        action= SetMods(modifiers=Alt,clearLocks);
659    };
660    interpret Meta_L+AnyOfOrNone(all) {
661        action= SetMods(modifiers=Meta,clearLocks);
662    };
663    interpret Meta_R+AnyOfOrNone(all) {
664        action= SetMods(modifiers=Meta,clearLocks);
665    };
666    interpret Super_L+AnyOfOrNone(all) {
667        action= SetMods(modifiers=Super,clearLocks);
668    };
669    interpret Super_R+AnyOfOrNone(all) {
670        action= SetMods(modifiers=Super,clearLocks);
671    };
672    interpret Hyper_L+AnyOfOrNone(all) {
673        action= SetMods(modifiers=Hyper,clearLocks);
674    };
675    interpret Hyper_R+AnyOfOrNone(all) {
676        action= SetMods(modifiers=Hyper,clearLocks);
677    };
678    interpret XF86Switch_VT_1+AnyOfOrNone(all) {
679        repeat= True;
680        action= SwitchScreen(screen=1,!same);
681    };
682    interpret XF86Switch_VT_2+AnyOfOrNone(all) {
683        repeat= True;
684        action= SwitchScreen(screen=2,!same);
685    };
686    interpret XF86Switch_VT_3+AnyOfOrNone(all) {
687        repeat= True;
688        action= SwitchScreen(screen=3,!same);
689    };
690    interpret XF86Switch_VT_4+AnyOfOrNone(all) {
691        repeat= True;
692        action= SwitchScreen(screen=4,!same);
693    };
694    interpret XF86Switch_VT_5+AnyOfOrNone(all) {
695        repeat= True;
696        action= SwitchScreen(screen=5,!same);
697    };
698    interpret XF86Switch_VT_6+AnyOfOrNone(all) {
699        repeat= True;
700        action= SwitchScreen(screen=6,!same);
701    };
702    interpret XF86Switch_VT_7+AnyOfOrNone(all) {
703        repeat= True;
704        action= SwitchScreen(screen=7,!same);
705    };
706    interpret XF86Switch_VT_8+AnyOfOrNone(all) {
707        repeat= True;
708        action= SwitchScreen(screen=8,!same);
709    };
710    interpret XF86Switch_VT_9+AnyOfOrNone(all) {
711        repeat= True;
712        action= SwitchScreen(screen=9,!same);
713    };
714    interpret XF86Switch_VT_10+AnyOfOrNone(all) {
715        repeat= True;
716        action= SwitchScreen(screen=10,!same);
717    };
718    interpret XF86Switch_VT_11+AnyOfOrNone(all) {
719        repeat= True;
720        action= SwitchScreen(screen=11,!same);
721    };
722    interpret XF86Switch_VT_12+AnyOfOrNone(all) {
723        repeat= True;
724        action= SwitchScreen(screen=12,!same);
725    };
726    interpret XF86Ungrab+AnyOfOrNone(all) {
727        repeat= True;
728        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);
729    };
730    interpret XF86ClearGrab+AnyOfOrNone(all) {
731        repeat= True;
732        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);
733    };
734    interpret XF86Next_VMode+AnyOfOrNone(all) {
735        repeat= True;
736        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);
737    };
738    interpret XF86Prev_VMode+AnyOfOrNone(all) {
739        repeat= True;
740        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);
741    };
742    interpret ISO_Level5_Shift+AnyOfOrNone(all) {
743        action= SetMods(modifiers=LevelFive,clearLocks);
744    };
745    interpret ISO_Level5_Latch+AnyOfOrNone(all) {
746        action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
747    };
748    interpret ISO_Level5_Lock+AnyOfOrNone(all) {
749        action= LockMods(modifiers=LevelFive);
750    };
751    interpret Any+Exactly(Lock) {
752        action= LockMods(modifiers=Lock);
753    };
754    interpret Any+AnyOf(all) {
755        action= SetMods(modifiers=modMapMods,clearLocks);
756    };
757    group 2 = AltGr;
758    group 3 = AltGr;
759    group 4 = AltGr;
760    indicator "Caps Lock" {
761        !allowExplicit;
762        whichModState= locked;
763        modifiers= Lock;
764    };
765    indicator "Num Lock" {
766        !allowExplicit;
767        whichModState= locked;
768        modifiers= NumLock;
769    };
770    indicator "Shift Lock" {
771        !allowExplicit;
772        whichModState= locked;
773        modifiers= Shift;
774    };
775    indicator "Group 2" {
776        !allowExplicit;
777        groups= 0xfe;
778    };
779    indicator "Mouse Keys" {
780        indicatorDrivesKeyboard;
781        controls= mouseKeys;
782    };
783    indicator "Scroll Lock" {
784        whichModState= locked;
785        modifiers= ScrollLock;
786    };
787};
788
789xkb_symbols "unknown" {
790
791    key     <> {
792        type= "ALPHABETIC",
793        symbols[Group1]= [               a,               A ],
794        symbols[Group2]= [           aring,           Aring ]
795    };
796    modifier_map Mod2 { <> };
797};
798
799xkb_geometry "pc(pc104)" {
800
801    width=       470;
802    height=      180;
803
804    baseColor=   "white";
805    labelColor=  "black";
806    xfont=       "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
807    description= "Generic 104";
808
809    shape "NORM" {
810        corner= 1,
811        { [  18,  18 ] },
812        { [   2,   1 ], [  16,  16 ] }
813    };
814    shape "BKSP" {
815        corner= 1,
816        { [  38,  18 ] },
817        { [   2,   1 ], [  36,  16 ] }
818    };
819    shape "TABK" {
820        corner= 1,
821        { [  28,  18 ] },
822        { [   2,   1 ], [  26,  16 ] }
823    };
824    shape "BKSL" {
825        corner= 1,
826        { [  28,  18 ] },
827        { [   2,   1 ], [  26,  16 ] }
828    };
829    shape "RTRN" {
830        corner= 1,
831        { [  42,  18 ] },
832        { [   2,   1 ], [  40,  16 ] }
833    };
834    shape "CAPS" {
835        corner= 1,
836        { [  33,  18 ] },
837        { [   2,   1 ], [  31,  16 ] }
838    };
839    shape "LFSH" {
840        corner= 1,
841        { [  42,  18 ] },
842        { [   2,   1 ], [  40,  16 ] }
843    };
844    shape "RTSH" {
845        corner= 1,
846        { [  52,  18 ] },
847        { [   2,   1 ], [  50,  16 ] }
848    };
849    shape "MODK" {
850        corner= 1,
851        { [  27,  18 ] },
852        { [   2,   1 ], [  25,  16 ] }
853    };
854    shape "SMOD" {
855        corner= 1,
856        { [  23,  18 ] },
857        { [   2,   1 ], [  21,  16 ] }
858    };
859    shape "SPCE" {
860        corner= 1,
861        { [ 113,  18 ] },
862        { [   2,   1 ], [ 111,  16 ] }
863    };
864    shape "KP0" {
865        corner= 1,
866        { [  37,  18 ] },
867        { [   2,   1 ], [  35,  16 ] }
868    };
869    shape "KPAD" {
870        corner= 1,
871        { [  18,  37 ] },
872        { [   2,   1 ], [  16,  35 ] }
873    };
874    shape "LEDS" { { [  75,  20 ] } };
875    shape "LED" { { [   5,   1 ] } };
876    section "Function" {
877        key.color= "grey20";
878        priority=  7;
879        top=       22;
880        left=      19;
881        width=     351;
882        height=    19;
883        row {
884            top=  1;
885            left= 1;
886            keys {
887                {  <ESC>, "NORM",   1 },
888                { <FK01>, "NORM",  20, color="white" },
889                { <FK02>, "NORM",   1, color="white" },
890                { <FK03>, "NORM",   1, color="white" },
891                { <FK04>, "NORM",   1, color="white" },
892                { <FK05>, "NORM",  11, color="white" },
893                { <FK06>, "NORM",   1, color="white" },
894                { <FK07>, "NORM",   1, color="white" },
895                { <FK08>, "NORM",   1, color="white" },
896                { <FK09>, "NORM",  11, color="white" },
897                { <FK10>, "NORM",   1, color="white" },
898                { <FK11>, "NORM",   1, color="white" },
899                { <FK12>, "NORM",   1, color="white" },
900                { <PRSC>, "NORM",   8, color="white" },
901                { <SCLK>, "NORM",   1, color="white" },
902                { <PAUS>, "NORM",   1, color="white" }
903            };
904        };
905    }; // End of "Function" section
906
907    section "Alpha" {
908        key.color= "white";
909        priority=  8;
910        top=       61;
911        left=      19;
912        width=     287;
913        height=    95;
914        row {
915            top=  1;
916            left= 1;
917            keys {
918                { <TLDE>, "NORM",   1 }, { <AE01>, "NORM",   1 },
919                { <AE02>, "NORM",   1 }, { <AE03>, "NORM",   1 },
920                { <AE04>, "NORM",   1 }, { <AE05>, "NORM",   1 },
921                { <AE06>, "NORM",   1 }, { <AE07>, "NORM",   1 },
922                { <AE08>, "NORM",   1 }, { <AE09>, "NORM",   1 },
923                { <AE10>, "NORM",   1 }, { <AE11>, "NORM",   1 },
924                { <AE12>, "NORM",   1 },
925                { <BKSP>, "BKSP",   1, color="grey20" }
926            };
927        };
928        row {
929            top=  20;
930            left= 1;
931            keys {
932                {  <TAB>, "TABK",   1, color="grey20" },
933                { <AD01>, "NORM",   1 }, { <AD02>, "NORM",   1 },
934                { <AD03>, "NORM",   1 }, { <AD04>, "NORM",   1 },
935                { <AD05>, "NORM",   1 }, { <AD06>, "NORM",   1 },
936                { <AD07>, "NORM",   1 }, { <AD08>, "NORM",   1 },
937                { <AD09>, "NORM",   1 }, { <AD10>, "NORM",   1 },
938                { <AD11>, "NORM",   1 }, { <AD12>, "NORM",   1 },
939                { <BKSL>, "BKSL",   1 }
940            };
941        };
942        row {
943            top=  39;
944            left= 1;
945            keys {
946                { <CAPS>, "CAPS",   1, color="grey20" },
947                { <AC01>, "NORM",   1 }, { <AC02>, "NORM",   1 },
948                { <AC03>, "NORM",   1 }, { <AC04>, "NORM",   1 },
949                { <AC05>, "NORM",   1 }, { <AC06>, "NORM",   1 },
950                { <AC07>, "NORM",   1 }, { <AC08>, "NORM",   1 },
951                { <AC09>, "NORM",   1 }, { <AC10>, "NORM",   1 },
952                { <AC11>, "NORM",   1 },
953                { <RTRN>, "RTRN",   1, color="grey20" }
954            };
955        };
956        row {
957            top=  58;
958            left= 1;
959            keys {
960                { <LFSH>, "LFSH",   1, color="grey20" },
961                { <AB01>, "NORM",   1 }, { <AB02>, "NORM",   1 },
962                { <AB03>, "NORM",   1 }, { <AB04>, "NORM",   1 },
963                { <AB05>, "NORM",   1 }, { <AB06>, "NORM",   1 },
964                { <AB07>, "NORM",   1 }, { <AB08>, "NORM",   1 },
965                { <AB09>, "NORM",   1 }, { <AB10>, "NORM",   1 },
966                { <RTSH>, "RTSH",   1, color="grey20" }
967            };
968        };
969        row {
970            top=  77;
971            left= 1;
972            keys {
973                { <LCTL>, "MODK",   1, color="grey20" },
974                { <LWIN>, "SMOD",   1, color="grey20" },
975                { <LALT>, "SMOD",   1, color="grey20" },
976                { <SPCE>, "SPCE",   1 },
977                { <RALT>, "SMOD",   1, color="grey20" },
978                { <RWIN>, "SMOD",   1, color="grey20" },
979                { <MENU>, "SMOD",   1, color="grey20" },
980                { <RCTL>, "SMOD",   1, color="grey20" }
981            };
982        };
983    }; // End of "Alpha" section
984
985    section "Editing" {
986        key.color= "grey20";
987        priority=  9;
988        top=       61;
989        left=      312;
990        width=     58;
991        height=    95;
992        row {
993            top=  1;
994            left= 1;
995            keys {
996                {  <INS>, "NORM",   1 }, { <HOME>, "NORM",   1 },
997                { <PGUP>, "NORM",   1 }
998            };
999        };
1000        row {
1001            top=  20;
1002            left= 1;
1003            keys {
1004                { <DELE>, "NORM",   1 }, {  <END>, "NORM",   1 },
1005                { <PGDN>, "NORM",   1 }
1006            };
1007        };
1008        row {
1009            top=  58;
1010            left= 20;
1011            keys {
1012                {   <UP>, "NORM",   1 }
1013            };
1014        };
1015        row {
1016            top=  77;
1017            left= 1;
1018            keys {
1019                { <LEFT>, "NORM",   1 }, { <DOWN>, "NORM",   1 },
1020                { <RGHT>, "NORM",   1 }
1021            };
1022        };
1023    }; // End of "Editing" section
1024
1025    section "Keypad" {
1026        key.color= "grey20";
1027        priority=  10;
1028        top=       61;
1029        left=      376;
1030        width=     77;
1031        height=    95;
1032        row {
1033            top=  1;
1034            left= 1;
1035            keys {
1036                { <NMLK>, "NORM",   1 }, { <KPDV>, "NORM",   1 },
1037                { <KPMU>, "NORM",   1 }, { <KPSU>, "NORM",   1 }
1038            };
1039        };
1040        row {
1041            top=  20;
1042            left= 1;
1043            keys {
1044                {  <KP7>, "NORM",   1, color="white" },
1045                {  <KP8>, "NORM",   1, color="white" },
1046                {  <KP9>, "NORM",   1, color="white" },
1047                { <KPAD>, "KPAD",   1 }
1048            };
1049        };
1050        row {
1051            top=  39;
1052            left= 1;
1053            keys {
1054                {  <KP4>, "NORM",   1, color="white" },
1055                {  <KP5>, "NORM",   1, color="white" },
1056                {  <KP6>, "NORM",   1, color="white" }
1057            };
1058        };
1059        row {
1060            top=  58;
1061            left= 1;
1062            keys {
1063                {  <KP1>, "NORM",   1, color="white" },
1064                {  <KP2>, "NORM",   1, color="white" },
1065                {  <KP3>, "NORM",   1, color="white" },
1066                { <KPEN>, "KPAD",   1 }
1067            };
1068        };
1069        row {
1070            top=  77;
1071            left= 1;
1072            keys {
1073                {  <KP0>, "KP0",   1, color="white" },
1074                { <KPDL>, "NORM",   1, color="white" }
1075            };
1076        };
1077    }; // End of "Keypad" section
1078
1079    solid "LedPanel" {
1080        top=      22;
1081        left=     377;
1082        priority= 0;
1083        color= "grey10";
1084        shape= "LEDS";
1085    };
1086    indicator "Num Lock" {
1087        top=      37;
1088        left=     382;
1089        priority= 1;
1090        onColor= "green";
1091        offColor= "green30";
1092        shape= "LED";
1093    };
1094    indicator "Caps Lock" {
1095        top=      37;
1096        left=     407;
1097        priority= 2;
1098        onColor= "green";
1099        offColor= "green30";
1100        shape= "LED";
1101    };
1102    indicator "Scroll Lock" {
1103        top=      37;
1104        left=     433;
1105        priority= 3;
1106        onColor= "green";
1107        offColor= "green30";
1108        shape= "LED";
1109    };
1110    text "NumLockLabel" {
1111        top=      25;
1112        left=     378;
1113        priority= 4;
1114        width=  19.8;
1115        height=  10;
1116        XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
1117        text=  "Num\nLock";
1118    };
1119    text "CapsLockLabel" {
1120        top=      25;
1121        left=     403;
1122        priority= 5;
1123        width=  26.4;
1124        height=  10;
1125        XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
1126        text=  "Caps\nLock";
1127    };
1128    text "ScrollLockLabel" {
1129        top=      25;
1130        left=     428;
1131        priority= 6;
1132        width=  39.6;
1133        height=  10;
1134        XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
1135        text=  "Scroll\nLock";
1136    };
1137};
1138
1139};