Edit

kc3-lang/libxkbcommon/test/data/keymaps/quartz.xkb

Branch :

  • Show log

    Commit

  • Author : Ran Benita
    Date : 2020-09-07 11:15:43
    Hash : 461d7278
    Message : test/data: change quartz.xkb from CRLF to LF Signed-off-by: Ran Benita <ran@unusedvar.com>

  • test/data/keymaps/quartz.xkb
  • xkb_keymap {
    xkb_keycodes "empty_aliases(qwerty)" {
        minimum = 8;
        maximum = 255;
        virtual indicator 1 = "Caps Lock";
        virtual indicator 2 = "Num Lock";
        virtual indicator 3 = "Shift Lock";
        virtual indicator 4 = "Group 2";
        virtual indicator 5 = "Mouse Keys";
        virtual indicator 6 = "Scroll Lock";
    };
    
    xkb_types "complete" {
    
        virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
    
        type "ONE_LEVEL" {
            modifiers= none;
            level_name[Level1]= "Any";
        };
        type "TWO_LEVEL" {
            modifiers= Shift;
            map[Shift]= Level2;
            level_name[Level1]= "Base";
            level_name[Level2]= "Shift";
        };
        type "ALPHABETIC" {
            modifiers= Shift+Lock;
            map[Shift]= Level2;
            map[Lock]= Level2;
            level_name[Level1]= "Base";
            level_name[Level2]= "Caps";
        };
        type "KEYPAD" {
            modifiers= Shift+NumLock;
            map[Shift]= Level2;
            map[NumLock]= Level2;
            level_name[Level1]= "Base";
            level_name[Level2]= "Number";
        };
        type "SHIFT+ALT" {
            modifiers= Shift+Alt;
            map[Shift+Alt]= Level2;
            level_name[Level1]= "Base";
            level_name[Level2]= "Shift+Alt";
        };
        type "PC_CONTROL_LEVEL2" {
            modifiers= Control;
            map[Control]= Level2;
            level_name[Level1]= "Base";
            level_name[Level2]= "Control";
        };
        type "PC_LCONTROL_LEVEL2" {
            modifiers= LControl;
            map[LControl]= Level2;
            level_name[Level1]= "Base";
            level_name[Level2]= "LControl";
        };
        type "PC_RCONTROL_LEVEL2" {
            modifiers= RControl;
            map[RControl]= Level2;
            level_name[Level1]= "Base";
            level_name[Level2]= "RControl";
        };
        type "PC_ALT_LEVEL2" {
            modifiers= Alt;
            map[Alt]= Level2;
            level_name[Level1]= "Base";
            level_name[Level2]= "Alt";
        };
        type "PC_LALT_LEVEL2" {
            modifiers= LAlt;
            map[LAlt]= Level2;
            level_name[Level1]= "Base";
            level_name[Level2]= "LAlt";
        };
        type "PC_RALT_LEVEL2" {
            modifiers= RAlt;
            map[RAlt]= Level2;
            level_name[Level1]= "Base";
            level_name[Level2]= "RAlt";
        };
        type "CTRL+ALT" {
            modifiers= Control+Alt;
            map[Control+Alt]= Level2;
            level_name[Level1]= "Base";
            level_name[Level2]= "Ctrl+Alt";
        };
        type "LOCAL_EIGHT_LEVEL" {
            modifiers= Shift+Lock+Control+LevelThree;
            map[Shift]= Level2;
            map[Lock]= Level2;
            map[LevelThree]= Level3;
            map[Shift+Lock+LevelThree]= Level3;
            map[Shift+LevelThree]= Level4;
            map[Lock+LevelThree]= Level4;
            map[Control]= Level5;
            map[Shift+Lock+Control]= Level5;
            map[Shift+Control]= Level6;
            map[Lock+Control]= Level6;
            map[Control+LevelThree]= Level7;
            map[Shift+Lock+Control+LevelThree]= Level7;
            map[Shift+Control+LevelThree]= Level8;
            map[Lock+Control+LevelThree]= Level8;
            level_name[Level1]= "Base";
            level_name[Level2]= "Shift";
            level_name[Level3]= "Level3";
            level_name[Level4]= "Shift Level3";
            level_name[Level5]= "Ctrl";
            level_name[Level6]= "Shift Ctrl";
            level_name[Level7]= "Level3 Ctrl";
            level_name[Level8]= "Shift Level3 Ctrl";
        };
        type "THREE_LEVEL" {
            modifiers= Shift+LevelThree;
            map[Shift]= Level2;
            map[LevelThree]= Level3;
            map[Shift+LevelThree]= Level3;
            level_name[Level1]= "Base";
            level_name[Level2]= "Shift";
            level_name[Level3]= "Level3";
        };
        type "EIGHT_LEVEL" {
            modifiers= Shift+LevelThree+LevelFive;
            map[Shift]= Level2;
            map[LevelThree]= Level3;
            map[Shift+LevelThree]= Level4;
            map[LevelFive]= Level5;
            map[Shift+LevelFive]= Level6;
            map[LevelThree+LevelFive]= Level7;
            map[Shift+LevelThree+LevelFive]= Level8;
            level_name[Level1]= "Base";
            level_name[Level2]= "Shift";
            level_name[Level3]= "Alt Base";
            level_name[Level4]= "Shift Alt";
            level_name[Level5]= "X";
            level_name[Level6]= "X Shift";
            level_name[Level7]= "X Alt Base";
            level_name[Level8]= "X Shift Alt";
        };
        type "EIGHT_LEVEL_ALPHABETIC" {
            modifiers= Shift+Lock+LevelThree+LevelFive;
            map[Shift]= Level2;
            map[Lock]= Level2;
            map[LevelThree]= Level3;
            map[Shift+LevelThree]= Level4;
            map[Lock+LevelThree]= Level4;
            map[Shift+Lock+LevelThree]= Level3;
            map[LevelFive]= Level5;
            map[Shift+LevelFive]= Level6;
            map[Lock+LevelFive]= Level6;
            map[LevelThree+LevelFive]= Level7;
            map[Shift+LevelThree+LevelFive]= Level8;
            map[Lock+LevelThree+LevelFive]= Level8;
            map[Shift+Lock+LevelThree+LevelFive]= Level7;
            level_name[Level1]= "Base";
            level_name[Level2]= "Shift";
            level_name[Level3]= "Alt Base";
            level_name[Level4]= "Shift Alt";
            level_name[Level5]= "X";
            level_name[Level6]= "X Shift";
            level_name[Level7]= "X Alt Base";
            level_name[Level8]= "X Shift Alt";
        };
        type "EIGHT_LEVEL_SEMIALPHABETIC" {
            modifiers= Shift+Lock+LevelThree+LevelFive;
            map[Shift]= Level2;
            map[Lock]= Level2;
            map[LevelThree]= Level3;
            map[Shift+LevelThree]= Level4;
            map[Lock+LevelThree]= Level3;
            preserve[Lock+LevelThree]= Lock;
            map[Shift+Lock+LevelThree]= Level4;
            preserve[Shift+Lock+LevelThree]= Lock;
            map[LevelFive]= Level5;
            map[Shift+LevelFive]= Level6;
            map[Lock+LevelFive]= Level6;
            preserve[Lock+LevelFive]= Lock;
            map[LevelThree+LevelFive]= Level7;
            map[Shift+LevelThree+LevelFive]= Level8;
            map[Lock+LevelThree+LevelFive]= Level7;
            preserve[Lock+LevelThree+LevelFive]= Lock;
            map[Shift+Lock+LevelThree+LevelFive]= Level8;
            preserve[Shift+Lock+LevelThree+LevelFive]= Lock;
            map[Shift+Lock+LevelFive]= Level1;
            preserve[Shift+Lock+LevelFive]= Lock;
            level_name[Level1]= "Base";
            level_name[Level2]= "Shift";
            level_name[Level3]= "Alt Base";
            level_name[Level4]= "Shift Alt";
            level_name[Level5]= "X";
            level_name[Level6]= "X Shift";
            level_name[Level7]= "X Alt Base";
            level_name[Level8]= "X Shift Alt";
        };
        type "FOUR_LEVEL" {
            modifiers= Shift+LevelThree;
            map[Shift]= Level2;
            map[LevelThree]= Level3;
            map[Shift+LevelThree]= Level4;
            level_name[Level1]= "Base";
            level_name[Level2]= "Shift";
            level_name[Level3]= "Alt Base";
            level_name[Level4]= "Shift Alt";
        };
        type "FOUR_LEVEL_ALPHABETIC" {
            modifiers= Shift+Lock+LevelThree;
            map[Shift]= Level2;
            map[Lock]= Level2;
            map[LevelThree]= Level3;
            map[Shift+LevelThree]= Level4;
            map[Lock+LevelThree]= Level4;
            map[Shift+Lock+LevelThree]= Level3;
            level_name[Level1]= "Base";
            level_name[Level2]= "Shift";
            level_name[Level3]= "Alt Base";
            level_name[Level4]= "Shift Alt";
        };
        type "FOUR_LEVEL_SEMIALPHABETIC" {
            modifiers= Shift+Lock+LevelThree;
            map[Shift]= Level2;
            map[Lock]= Level2;
            map[LevelThree]= Level3;
            map[Shift+LevelThree]= Level4;
            map[Lock+LevelThree]= Level3;
            preserve[Lock+LevelThree]= Lock;
            map[Shift+Lock+LevelThree]= Level4;
            preserve[Shift+Lock+LevelThree]= Lock;
            level_name[Level1]= "Base";
            level_name[Level2]= "Shift";
            level_name[Level3]= "Alt Base";
            level_name[Level4]= "Shift Alt";
        };
        type "FOUR_LEVEL_MIXED_KEYPAD" {
            modifiers= Shift+NumLock+LevelThree;
            map[NumLock]= Level2;
            map[Shift]= Level2;
            map[LevelThree]= Level3;
            map[NumLock+LevelThree]= Level3;
            map[Shift+LevelThree]= Level4;
            map[Shift+NumLock+LevelThree]= Level4;
            level_name[Level1]= "Base";
            level_name[Level2]= "Number";
            level_name[Level3]= "Alt Base";
            level_name[Level4]= "Shift Alt";
        };
        type "FOUR_LEVEL_X" {
            modifiers= Shift+Control+Alt+LevelThree;
            map[LevelThree]= Level2;
            map[Shift+LevelThree]= Level3;
            map[Control+Alt]= Level4;
            level_name[Level1]= "Base";
            level_name[Level2]= "Alt Base";
            level_name[Level3]= "Shift Alt";
            level_name[Level4]= "Ctrl+Alt";
        };
        type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" {
            modifiers= Shift+Lock+LevelThree;
            map[Shift]= Level2;
            map[Lock]= Level4;
            preserve[Lock]= Lock;
            map[LevelThree]= Level3;
            map[Shift+LevelThree]= Level4;
            map[Lock+LevelThree]= Level3;
            preserve[Lock+LevelThree]= Lock;
            map[Shift+Lock+LevelThree]= Level3;
            level_name[Level1]= "Base";
            level_name[Level2]= "Shift";
            level_name[Level3]= "AltGr Base";
            level_name[Level4]= "Shift AltGr";
        };
        type "FOUR_LEVEL_PLUS_LOCK" {
            modifiers= Shift+Lock+LevelThree;
            map[Shift]= Level2;
            map[LevelThree]= Level3;
            map[Shift+LevelThree]= Level4;
            map[Lock]= Level5;
            map[Shift+Lock]= Level2;
            map[Lock+LevelThree]= Level3;
            map[Shift+Lock+LevelThree]= Level4;
            level_name[Level1]= "Base";
            level_name[Level2]= "Shift";
            level_name[Level3]= "Alt Base";
            level_name[Level4]= "Shift Alt";
            level_name[Level5]= "Lock";
        };
        type "FOUR_LEVEL_KEYPAD" {
            modifiers= Shift+NumLock+LevelThree;
            map[Shift]= Level2;
            map[NumLock]= Level2;
            map[LevelThree]= Level3;
            map[Shift+LevelThree]= Level4;
            map[NumLock+LevelThree]= Level4;
            map[Shift+NumLock+LevelThree]= Level3;
            level_name[Level1]= "Base";
            level_name[Level2]= "Number";
            level_name[Level3]= "Alt Base";
            level_name[Level4]= "Alt Number";
        };
    };
    
    xkb_compatibility "complete" {
    
        virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
    
        interpret.useModMapMods= AnyLevel;
        interpret.repeat= False;
        interpret.locking= False;
        interpret ISO_Level2_Latch+Exactly(Shift) {
            useModMapMods=level1;
            action= LatchMods(modifiers=Shift,clearLocks,latchToLock);
        };
        interpret Shift_Lock+AnyOf(Shift+Lock) {
            action= LockMods(modifiers=Shift);
        };
        interpret Num_Lock+AnyOf(all) {
            virtualModifier= NumLock;
            action= LockMods(modifiers=NumLock);
        };
        interpret ISO_Lock+AnyOf(all) {
            action= ISOLock(modifiers=modMapMods,affect=all);
        };
        interpret ISO_Level3_Shift+AnyOf(all) {
            virtualModifier= LevelThree;
            useModMapMods=level1;
            action= SetMods(modifiers=LevelThree,clearLocks);
        };
        interpret ISO_Level3_Latch+AnyOf(all) {
            virtualModifier= LevelThree;
            useModMapMods=level1;
            action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
        };
        interpret ISO_Level3_Lock+AnyOf(all) {
            virtualModifier= LevelThree;
            useModMapMods=level1;
            action= LockMods(modifiers=LevelThree);
        };
        interpret Alt_L+AnyOf(all) {
            virtualModifier= Alt;
            action= SetMods(modifiers=modMapMods,clearLocks);
        };
        interpret Alt_R+AnyOf(all) {
            virtualModifier= Alt;
            action= SetMods(modifiers=modMapMods,clearLocks);
        };
        interpret Meta_L+AnyOf(all) {
            virtualModifier= Meta;
            action= SetMods(modifiers=modMapMods,clearLocks);
        };
        interpret Meta_R+AnyOf(all) {
            virtualModifier= Meta;
            action= SetMods(modifiers=modMapMods,clearLocks);
        };
        interpret Super_L+AnyOf(all) {
            virtualModifier= Super;
            action= SetMods(modifiers=modMapMods,clearLocks);
        };
        interpret Super_R+AnyOf(all) {
            virtualModifier= Super;
            action= SetMods(modifiers=modMapMods,clearLocks);
        };
        interpret Hyper_L+AnyOf(all) {
            virtualModifier= Hyper;
            action= SetMods(modifiers=modMapMods,clearLocks);
        };
        interpret Hyper_R+AnyOf(all) {
            virtualModifier= Hyper;
            action= SetMods(modifiers=modMapMods,clearLocks);
        };
        interpret Scroll_Lock+AnyOf(all) {
            virtualModifier= ScrollLock;
            action= LockMods(modifiers=modMapMods);
        };
        interpret ISO_Level5_Shift+AnyOf(all) {
            virtualModifier= LevelFive;
            useModMapMods=level1;
            action= SetMods(modifiers=LevelFive,clearLocks);
        };
        interpret ISO_Level5_Latch+AnyOf(all) {
            virtualModifier= LevelFive;
            action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
        };
        interpret ISO_Level5_Lock+AnyOf(all) {
            virtualModifier= LevelFive;
            action= LockMods(modifiers=LevelFive);
        };
        interpret Mode_switch+AnyOfOrNone(all) {
            virtualModifier= AltGr;
            useModMapMods=level1;
            action= SetGroup(group=+1);
        };
        interpret ISO_Level3_Shift+AnyOfOrNone(all) {
            action= SetMods(modifiers=LevelThree,clearLocks);
        };
        interpret ISO_Level3_Latch+AnyOfOrNone(all) {
            action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
        };
        interpret ISO_Level3_Lock+AnyOfOrNone(all) {
            action= LockMods(modifiers=LevelThree);
        };
        interpret ISO_Group_Latch+AnyOfOrNone(all) {
            virtualModifier= AltGr;
            useModMapMods=level1;
            action= LatchGroup(group=2);
        };
        interpret ISO_Next_Group+AnyOfOrNone(all) {
            virtualModifier= AltGr;
            useModMapMods=level1;
            action= LockGroup(group=+1);
        };
        interpret ISO_Prev_Group+AnyOfOrNone(all) {
            virtualModifier= AltGr;
            useModMapMods=level1;
            action= LockGroup(group=-1);
        };
        interpret ISO_First_Group+AnyOfOrNone(all) {
            action= LockGroup(group=1);
        };
        interpret ISO_Last_Group+AnyOfOrNone(all) {
            action= LockGroup(group=2);
        };
        interpret KP_1+AnyOfOrNone(all) {
            repeat= True;
            action= MovePtr(x=-1,y=+1);
        };
        interpret KP_End+AnyOfOrNone(all) {
            repeat= True;
            action= MovePtr(x=-1,y=+1);
        };
        interpret KP_2+AnyOfOrNone(all) {
            repeat= True;
            action= MovePtr(x=+0,y=+1);
        };
        interpret KP_Down+AnyOfOrNone(all) {
            repeat= True;
            action= MovePtr(x=+0,y=+1);
        };
        interpret KP_3+AnyOfOrNone(all) {
            repeat= True;
            action= MovePtr(x=+1,y=+1);
        };
        interpret KP_Next+AnyOfOrNone(all) {
            repeat= True;
            action= MovePtr(x=+1,y=+1);
        };
        interpret KP_4+AnyOfOrNone(all) {
            repeat= True;
            action= MovePtr(x=-1,y=+0);
        };
        interpret KP_Left+AnyOfOrNone(all) {
            repeat= True;
            action= MovePtr(x=-1,y=+0);
        };
        interpret KP_6+AnyOfOrNone(all) {
            repeat= True;
            action= MovePtr(x=+1,y=+0);
        };
        interpret KP_Right+AnyOfOrNone(all) {
            repeat= True;
            action= MovePtr(x=+1,y=+0);
        };
        interpret KP_7+AnyOfOrNone(all) {
            repeat= True;
            action= MovePtr(x=-1,y=-1);
        };
        interpret KP_Home+AnyOfOrNone(all) {
            repeat= True;
            action= MovePtr(x=-1,y=-1);
        };
        interpret KP_8+AnyOfOrNone(all) {
            repeat= True;
            action= MovePtr(x=+0,y=-1);
        };
        interpret KP_Up+AnyOfOrNone(all) {
            repeat= True;
            action= MovePtr(x=+0,y=-1);
        };
        interpret KP_9+AnyOfOrNone(all) {
            repeat= True;
            action= MovePtr(x=+1,y=-1);
        };
        interpret KP_Prior+AnyOfOrNone(all) {
            repeat= True;
            action= MovePtr(x=+1,y=-1);
        };
        interpret KP_5+AnyOfOrNone(all) {
            repeat= True;
            action= PtrBtn(button=default);
        };
        interpret KP_Begin+AnyOfOrNone(all) {
            repeat= True;
            action= PtrBtn(button=default);
        };
        interpret KP_F2+AnyOfOrNone(all) {
            repeat= True;
            action= SetPtrDflt(affect=button,button=1);
        };
        interpret KP_Divide+AnyOfOrNone(all) {
            repeat= True;
            action= SetPtrDflt(affect=button,button=1);
        };
        interpret KP_F3+AnyOfOrNone(all) {
            repeat= True;
            action= SetPtrDflt(affect=button,button=2);
        };
        interpret KP_Multiply+AnyOfOrNone(all) {
            repeat= True;
            action= SetPtrDflt(affect=button,button=2);
        };
        interpret KP_F4+AnyOfOrNone(all) {
            repeat= True;
            action= SetPtrDflt(affect=button,button=3);
        };
        interpret KP_Subtract+AnyOfOrNone(all) {
            repeat= True;
            action= SetPtrDflt(affect=button,button=3);
        };
        interpret KP_Separator+AnyOfOrNone(all) {
            repeat= True;
            action= PtrBtn(button=default,count=2);
        };
        interpret KP_Add+AnyOfOrNone(all) {
            repeat= True;
            action= PtrBtn(button=default,count=2);
        };
        interpret KP_0+AnyOfOrNone(all) {
            repeat= True;
            action= LockPtrBtn(button=default,affect=lock);
        };
        interpret KP_Insert+AnyOfOrNone(all) {
            repeat= True;
            action= LockPtrBtn(button=default,affect=lock);
        };
        interpret KP_Decimal+AnyOfOrNone(all) {
            repeat= True;
            action= LockPtrBtn(button=default,affect=unlock);
        };
        interpret KP_Delete+AnyOfOrNone(all) {
            repeat= True;
            action= LockPtrBtn(button=default,affect=unlock);
        };
        interpret F25+AnyOfOrNone(all) {
            repeat= True;
            action= SetPtrDflt(affect=button,button=1);
        };
        interpret F26+AnyOfOrNone(all) {
            repeat= True;
            action= SetPtrDflt(affect=button,button=2);
        };
        interpret F27+AnyOfOrNone(all) {
            repeat= True;
            action= MovePtr(x=-1,y=-1);
        };
        interpret F29+AnyOfOrNone(all) {
            repeat= True;
            action= MovePtr(x=+1,y=-1);
        };
        interpret F31+AnyOfOrNone(all) {
            repeat= True;
            action= PtrBtn(button=default);
        };
        interpret F33+AnyOfOrNone(all) {
            repeat= True;
            action= MovePtr(x=-1,y=+1);
        };
        interpret F35+AnyOfOrNone(all) {
            repeat= True;
            action= MovePtr(x=+1,y=+1);
        };
        interpret Pointer_Button_Dflt+AnyOfOrNone(all) {
            action= PtrBtn(button=default);
        };
        interpret Pointer_Button1+AnyOfOrNone(all) {
            action= PtrBtn(button=1);
        };
        interpret Pointer_Button2+AnyOfOrNone(all) {
            action= PtrBtn(button=2);
        };
        interpret Pointer_Button3+AnyOfOrNone(all) {
            action= PtrBtn(button=3);
        };
        interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) {
            action= PtrBtn(button=default,count=2);
        };
        interpret Pointer_DblClick1+AnyOfOrNone(all) {
            action= PtrBtn(button=1,count=2);
        };
        interpret Pointer_DblClick2+AnyOfOrNone(all) {
            action= PtrBtn(button=2,count=2);
        };
        interpret Pointer_DblClick3+AnyOfOrNone(all) {
            action= PtrBtn(button=3,count=2);
        };
        interpret Pointer_Drag_Dflt+AnyOfOrNone(all) {
            action= LockPtrBtn(button=default,affect=both);
        };
        interpret Pointer_Drag1+AnyOfOrNone(all) {
            action= LockPtrBtn(button=1,affect=both);
        };
        interpret Pointer_Drag2+AnyOfOrNone(all) {
            action= LockPtrBtn(button=2,affect=both);
        };
        interpret Pointer_Drag3+AnyOfOrNone(all) {
            action= LockPtrBtn(button=3,affect=both);
        };
        interpret Pointer_EnableKeys+AnyOfOrNone(all) {
            action= LockControls(controls=MouseKeys);
        };
        interpret Pointer_Accelerate+AnyOfOrNone(all) {
            action= LockControls(controls=MouseKeysAccel);
        };
        interpret Pointer_DfltBtnNext+AnyOfOrNone(all) {
            action= SetPtrDflt(affect=button,button=+1);
        };
        interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) {
            action= SetPtrDflt(affect=button,button=-1);
        };
        interpret AccessX_Enable+AnyOfOrNone(all) {
            action= LockControls(controls=AccessXKeys);
        };
        interpret AccessX_Feedback_Enable+AnyOfOrNone(all) {
            action= LockControls(controls=AccessXFeedback);
        };
        interpret RepeatKeys_Enable+AnyOfOrNone(all) {
            action= LockControls(controls=RepeatKeys);
        };
        interpret SlowKeys_Enable+AnyOfOrNone(all) {
            action= LockControls(controls=SlowKeys);
        };
        interpret BounceKeys_Enable+AnyOfOrNone(all) {
            action= LockControls(controls=BounceKeys);
        };
        interpret StickyKeys_Enable+AnyOfOrNone(all) {
            action= LockControls(controls=StickyKeys);
        };
        interpret MouseKeys_Enable+AnyOfOrNone(all) {
            action= LockControls(controls=MouseKeys);
        };
        interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) {
            action= LockControls(controls=MouseKeysAccel);
        };
        interpret Overlay1_Enable+AnyOfOrNone(all) {
            action= LockControls(controls=Overlay1);
        };
        interpret Overlay2_Enable+AnyOfOrNone(all) {
            action= LockControls(controls=Overlay2);
        };
        interpret AudibleBell_Enable+AnyOfOrNone(all) {
            action= LockControls(controls=AudibleBell);
        };
        interpret Terminate_Server+AnyOfOrNone(all) {
            action= Terminate();
        };
        interpret Alt_L+AnyOfOrNone(all) {
            action= SetMods(modifiers=Alt,clearLocks);
        };
        interpret Alt_R+AnyOfOrNone(all) {
            action= SetMods(modifiers=Alt,clearLocks);
        };
        interpret Meta_L+AnyOfOrNone(all) {
            action= SetMods(modifiers=Meta,clearLocks);
        };
        interpret Meta_R+AnyOfOrNone(all) {
            action= SetMods(modifiers=Meta,clearLocks);
        };
        interpret Super_L+AnyOfOrNone(all) {
            action= SetMods(modifiers=Super,clearLocks);
        };
        interpret Super_R+AnyOfOrNone(all) {
            action= SetMods(modifiers=Super,clearLocks);
        };
        interpret Hyper_L+AnyOfOrNone(all) {
            action= SetMods(modifiers=Hyper,clearLocks);
        };
        interpret Hyper_R+AnyOfOrNone(all) {
            action= SetMods(modifiers=Hyper,clearLocks);
        };
        interpret XF86Switch_VT_1+AnyOfOrNone(all) {
            repeat= True;
            action= SwitchScreen(screen=1,!same);
        };
        interpret XF86Switch_VT_2+AnyOfOrNone(all) {
            repeat= True;
            action= SwitchScreen(screen=2,!same);
        };
        interpret XF86Switch_VT_3+AnyOfOrNone(all) {
            repeat= True;
            action= SwitchScreen(screen=3,!same);
        };
        interpret XF86Switch_VT_4+AnyOfOrNone(all) {
            repeat= True;
            action= SwitchScreen(screen=4,!same);
        };
        interpret XF86Switch_VT_5+AnyOfOrNone(all) {
            repeat= True;
            action= SwitchScreen(screen=5,!same);
        };
        interpret XF86Switch_VT_6+AnyOfOrNone(all) {
            repeat= True;
            action= SwitchScreen(screen=6,!same);
        };
        interpret XF86Switch_VT_7+AnyOfOrNone(all) {
            repeat= True;
            action= SwitchScreen(screen=7,!same);
        };
        interpret XF86Switch_VT_8+AnyOfOrNone(all) {
            repeat= True;
            action= SwitchScreen(screen=8,!same);
        };
        interpret XF86Switch_VT_9+AnyOfOrNone(all) {
            repeat= True;
            action= SwitchScreen(screen=9,!same);
        };
        interpret XF86Switch_VT_10+AnyOfOrNone(all) {
            repeat= True;
            action= SwitchScreen(screen=10,!same);
        };
        interpret XF86Switch_VT_11+AnyOfOrNone(all) {
            repeat= True;
            action= SwitchScreen(screen=11,!same);
        };
        interpret XF86Switch_VT_12+AnyOfOrNone(all) {
            repeat= True;
            action= SwitchScreen(screen=12,!same);
        };
        interpret XF86Ungrab+AnyOfOrNone(all) {
            repeat= True;
            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);
        };
        interpret XF86ClearGrab+AnyOfOrNone(all) {
            repeat= True;
            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);
        };
        interpret XF86Next_VMode+AnyOfOrNone(all) {
            repeat= True;
            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);
        };
        interpret XF86Prev_VMode+AnyOfOrNone(all) {
            repeat= True;
            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);
        };
        interpret ISO_Level5_Shift+AnyOfOrNone(all) {
            action= SetMods(modifiers=LevelFive,clearLocks);
        };
        interpret ISO_Level5_Latch+AnyOfOrNone(all) {
            action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
        };
        interpret ISO_Level5_Lock+AnyOfOrNone(all) {
            action= LockMods(modifiers=LevelFive);
        };
        interpret Any+Exactly(Lock) {
            action= LockMods(modifiers=Lock);
        };
        interpret Any+AnyOf(all) {
            action= SetMods(modifiers=modMapMods,clearLocks);
        };
        group 2 = AltGr;
        group 3 = AltGr;
        group 4 = AltGr;
        indicator "Caps Lock" {
            !allowExplicit;
            whichModState= locked;
            modifiers= Lock;
        };
        indicator "Num Lock" {
            !allowExplicit;
            whichModState= locked;
            modifiers= NumLock;
        };
        indicator "Shift Lock" {
            !allowExplicit;
            whichModState= locked;
            modifiers= Shift;
        };
        indicator "Group 2" {
            !allowExplicit;
            groups= 0xfe;
        };
        indicator "Mouse Keys" {
            indicatorDrivesKeyboard;
            controls= mouseKeys;
        };
        indicator "Scroll Lock" {
            whichModState= locked;
            modifiers= ScrollLock;
        };
    };
    
    xkb_symbols "unknown" {
    
        key     <> {
            type= "ALPHABETIC",
            symbols[Group1]= [               a,               A ],
            symbols[Group2]= [           aring,           Aring ]
        };
        modifier_map Mod2 { <> };
    };
    
    xkb_geometry "pc(pc104)" {
    
        width=       470;
        height=      180;
    
        baseColor=   "white";
        labelColor=  "black";
        xfont=       "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
        description= "Generic 104";
    
        shape "NORM" {
            corner= 1,
            { [  18,  18 ] },
            { [   2,   1 ], [  16,  16 ] }
        };
        shape "BKSP" {
            corner= 1,
            { [  38,  18 ] },
            { [   2,   1 ], [  36,  16 ] }
        };
        shape "TABK" {
            corner= 1,
            { [  28,  18 ] },
            { [   2,   1 ], [  26,  16 ] }
        };
        shape "BKSL" {
            corner= 1,
            { [  28,  18 ] },
            { [   2,   1 ], [  26,  16 ] }
        };
        shape "RTRN" {
            corner= 1,
            { [  42,  18 ] },
            { [   2,   1 ], [  40,  16 ] }
        };
        shape "CAPS" {
            corner= 1,
            { [  33,  18 ] },
            { [   2,   1 ], [  31,  16 ] }
        };
        shape "LFSH" {
            corner= 1,
            { [  42,  18 ] },
            { [   2,   1 ], [  40,  16 ] }
        };
        shape "RTSH" {
            corner= 1,
            { [  52,  18 ] },
            { [   2,   1 ], [  50,  16 ] }
        };
        shape "MODK" {
            corner= 1,
            { [  27,  18 ] },
            { [   2,   1 ], [  25,  16 ] }
        };
        shape "SMOD" {
            corner= 1,
            { [  23,  18 ] },
            { [   2,   1 ], [  21,  16 ] }
        };
        shape "SPCE" {
            corner= 1,
            { [ 113,  18 ] },
            { [   2,   1 ], [ 111,  16 ] }
        };
        shape "KP0" {
            corner= 1,
            { [  37,  18 ] },
            { [   2,   1 ], [  35,  16 ] }
        };
        shape "KPAD" {
            corner= 1,
            { [  18,  37 ] },
            { [   2,   1 ], [  16,  35 ] }
        };
        shape "LEDS" { { [  75,  20 ] } };
        shape "LED" { { [   5,   1 ] } };
        section "Function" {
            key.color= "grey20";
            priority=  7;
            top=       22;
            left=      19;
            width=     351;
            height=    19;
            row {
                top=  1;
                left= 1;
                keys {
                    {  <ESC>, "NORM",   1 },
                    { <FK01>, "NORM",  20, color="white" },
                    { <FK02>, "NORM",   1, color="white" },
                    { <FK03>, "NORM",   1, color="white" },
                    { <FK04>, "NORM",   1, color="white" },
                    { <FK05>, "NORM",  11, color="white" },
                    { <FK06>, "NORM",   1, color="white" },
                    { <FK07>, "NORM",   1, color="white" },
                    { <FK08>, "NORM",   1, color="white" },
                    { <FK09>, "NORM",  11, color="white" },
                    { <FK10>, "NORM",   1, color="white" },
                    { <FK11>, "NORM",   1, color="white" },
                    { <FK12>, "NORM",   1, color="white" },
                    { <PRSC>, "NORM",   8, color="white" },
                    { <SCLK>, "NORM",   1, color="white" },
                    { <PAUS>, "NORM",   1, color="white" }
                };
            };
        }; // End of "Function" section
    
        section "Alpha" {
            key.color= "white";
            priority=  8;
            top=       61;
            left=      19;
            width=     287;
            height=    95;
            row {
                top=  1;
                left= 1;
                keys {
                    { <TLDE>, "NORM",   1 }, { <AE01>, "NORM",   1 },
                    { <AE02>, "NORM",   1 }, { <AE03>, "NORM",   1 },
                    { <AE04>, "NORM",   1 }, { <AE05>, "NORM",   1 },
                    { <AE06>, "NORM",   1 }, { <AE07>, "NORM",   1 },
                    { <AE08>, "NORM",   1 }, { <AE09>, "NORM",   1 },
                    { <AE10>, "NORM",   1 }, { <AE11>, "NORM",   1 },
                    { <AE12>, "NORM",   1 },
                    { <BKSP>, "BKSP",   1, color="grey20" }
                };
            };
            row {
                top=  20;
                left= 1;
                keys {
                    {  <TAB>, "TABK",   1, color="grey20" },
                    { <AD01>, "NORM",   1 }, { <AD02>, "NORM",   1 },
                    { <AD03>, "NORM",   1 }, { <AD04>, "NORM",   1 },
                    { <AD05>, "NORM",   1 }, { <AD06>, "NORM",   1 },
                    { <AD07>, "NORM",   1 }, { <AD08>, "NORM",   1 },
                    { <AD09>, "NORM",   1 }, { <AD10>, "NORM",   1 },
                    { <AD11>, "NORM",   1 }, { <AD12>, "NORM",   1 },
                    { <BKSL>, "BKSL",   1 }
                };
            };
            row {
                top=  39;
                left= 1;
                keys {
                    { <CAPS>, "CAPS",   1, color="grey20" },
                    { <AC01>, "NORM",   1 }, { <AC02>, "NORM",   1 },
                    { <AC03>, "NORM",   1 }, { <AC04>, "NORM",   1 },
                    { <AC05>, "NORM",   1 }, { <AC06>, "NORM",   1 },
                    { <AC07>, "NORM",   1 }, { <AC08>, "NORM",   1 },
                    { <AC09>, "NORM",   1 }, { <AC10>, "NORM",   1 },
                    { <AC11>, "NORM",   1 },
                    { <RTRN>, "RTRN",   1, color="grey20" }
                };
            };
            row {
                top=  58;
                left= 1;
                keys {
                    { <LFSH>, "LFSH",   1, color="grey20" },
                    { <AB01>, "NORM",   1 }, { <AB02>, "NORM",   1 },
                    { <AB03>, "NORM",   1 }, { <AB04>, "NORM",   1 },
                    { <AB05>, "NORM",   1 }, { <AB06>, "NORM",   1 },
                    { <AB07>, "NORM",   1 }, { <AB08>, "NORM",   1 },
                    { <AB09>, "NORM",   1 }, { <AB10>, "NORM",   1 },
                    { <RTSH>, "RTSH",   1, color="grey20" }
                };
            };
            row {
                top=  77;
                left= 1;
                keys {
                    { <LCTL>, "MODK",   1, color="grey20" },
                    { <LWIN>, "SMOD",   1, color="grey20" },
                    { <LALT>, "SMOD",   1, color="grey20" },
                    { <SPCE>, "SPCE",   1 },
                    { <RALT>, "SMOD",   1, color="grey20" },
                    { <RWIN>, "SMOD",   1, color="grey20" },
                    { <MENU>, "SMOD",   1, color="grey20" },
                    { <RCTL>, "SMOD",   1, color="grey20" }
                };
            };
        }; // End of "Alpha" section
    
        section "Editing" {
            key.color= "grey20";
            priority=  9;
            top=       61;
            left=      312;
            width=     58;
            height=    95;
            row {
                top=  1;
                left= 1;
                keys {
                    {  <INS>, "NORM",   1 }, { <HOME>, "NORM",   1 },
                    { <PGUP>, "NORM",   1 }
                };
            };
            row {
                top=  20;
                left= 1;
                keys {
                    { <DELE>, "NORM",   1 }, {  <END>, "NORM",   1 },
                    { <PGDN>, "NORM",   1 }
                };
            };
            row {
                top=  58;
                left= 20;
                keys {
                    {   <UP>, "NORM",   1 }
                };
            };
            row {
                top=  77;
                left= 1;
                keys {
                    { <LEFT>, "NORM",   1 }, { <DOWN>, "NORM",   1 },
                    { <RGHT>, "NORM",   1 }
                };
            };
        }; // End of "Editing" section
    
        section "Keypad" {
            key.color= "grey20";
            priority=  10;
            top=       61;
            left=      376;
            width=     77;
            height=    95;
            row {
                top=  1;
                left= 1;
                keys {
                    { <NMLK>, "NORM",   1 }, { <KPDV>, "NORM",   1 },
                    { <KPMU>, "NORM",   1 }, { <KPSU>, "NORM",   1 }
                };
            };
            row {
                top=  20;
                left= 1;
                keys {
                    {  <KP7>, "NORM",   1, color="white" },
                    {  <KP8>, "NORM",   1, color="white" },
                    {  <KP9>, "NORM",   1, color="white" },
                    { <KPAD>, "KPAD",   1 }
                };
            };
            row {
                top=  39;
                left= 1;
                keys {
                    {  <KP4>, "NORM",   1, color="white" },
                    {  <KP5>, "NORM",   1, color="white" },
                    {  <KP6>, "NORM",   1, color="white" }
                };
            };
            row {
                top=  58;
                left= 1;
                keys {
                    {  <KP1>, "NORM",   1, color="white" },
                    {  <KP2>, "NORM",   1, color="white" },
                    {  <KP3>, "NORM",   1, color="white" },
                    { <KPEN>, "KPAD",   1 }
                };
            };
            row {
                top=  77;
                left= 1;
                keys {
                    {  <KP0>, "KP0",   1, color="white" },
                    { <KPDL>, "NORM",   1, color="white" }
                };
            };
        }; // End of "Keypad" section
    
        solid "LedPanel" {
            top=      22;
            left=     377;
            priority= 0;
            color= "grey10";
            shape= "LEDS";
        };
        indicator "Num Lock" {
            top=      37;
            left=     382;
            priority= 1;
            onColor= "green";
            offColor= "green30";
            shape= "LED";
        };
        indicator "Caps Lock" {
            top=      37;
            left=     407;
            priority= 2;
            onColor= "green";
            offColor= "green30";
            shape= "LED";
        };
        indicator "Scroll Lock" {
            top=      37;
            left=     433;
            priority= 3;
            onColor= "green";
            offColor= "green30";
            shape= "LED";
        };
        text "NumLockLabel" {
            top=      25;
            left=     378;
            priority= 4;
            width=  19.8;
            height=  10;
            XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
            text=  "Num\nLock";
        };
        text "CapsLockLabel" {
            top=      25;
            left=     403;
            priority= 5;
            width=  26.4;
            height=  10;
            XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
            text=  "Caps\nLock";
        };
        text "ScrollLockLabel" {
            top=      25;
            left=     428;
            priority= 6;
            width=  39.6;
            height=  10;
            XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
            text=  "Scroll\nLock";
        };
    };
    
    };