Fix issues detected by static analysis tool
[platform/upstream/libxkbcommon.git] / test / data / keymaps / quartz.xkb
1 xkb_keymap {
2 xkb_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
13 xkb_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
302 xkb_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
789 xkb_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
799 xkb_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 };