Home | History | Annotate | Download | only in keymaps
      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 };