// Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.

partial keypad_keys
xkb_symbols "disable_numpad" {
   replace key <NMLK> { [ VoidSymbol ] };
   key <KPEN> { [ Return                     ] };
   key <KPEQ> { [ equal                     ] };
   key.type[Group1]="CTRL+ALT" ;
   key <KPDV> { [   slash, slash, slash, slash, XF86_Ungrab ] }; // / <XF86_Ungrab>
   key <KPMU> { [ asterisk, asterisk, asterisk, asterisk, XF86_ClearGrab ] }; // * <XF86_ClearGrab>
   key <KPSU> { [ minus, minus, minus, minus, XF86_Prev_VMode ] }; // - <XF86_Prev_VMode>
   key <KPAD> { [      plus, plus, plus, plus, XF86_Next_VMode ] }; // + <XF86_Next_VMode>
   key.type[Group1]="KEYPAD" ;
   key <KP7>  { [ 7,       7 ] }; //   <home> 7
   key <KP8>  { [ 8,       8 ] }; //     <up> 8
   key <KP9>  { [ 9,       9 ] }; //  <prior> 9
   key <KP4>  { [ 4,       4 ] }; //   <left> 4
   key <KP5>  { [ 5,       5 ] }; //  <begin> 5
   key <KP6>  { [ 6,       6 ] }; //  <right> 6
   key <KP1>  { [ 1,       1 ] }; //    <end> 1
   key <KP2>  { [ 2,       2 ] }; //   <down> 2
   key <KP3>  { [ 3,       3 ] }; //   <next> 3
   key <KP0>  { [ 0,       0 ] }; // <insert> 0
   key <KPDL> { [ period, period ] }; // <delete> <separator>

};

partial keypad_keys
xkb_symbols "legacy_numpad" {

    key  <KP7> {
        type[Group1]= "SGDKEYPAD",
        symbols[Group1]=  [   Home   ],
        symbols[Group2]=  [   KP_7   ]
     };
    key  <KP8> {
        type[Group1]= "SGDKEYPAD",
        symbols[Group1]=  [   Up     ], 
        symbols[Group2]=  [   KP_8   ] 
    };
    key  <KP9> { 
        type[Group1]= "SGDKEYPAD",
        symbols[Group1]=  [   Prior  ],
        symbols[Group2]=  [   KP_9   ]
    };

    key  <KP4> {
        type[Group1]= "SGDKEYPAD",
        symbols[Group1]=  [   Left   ],
        symbols[Group2]=  [   KP_4   ]
    };
    key  <KP5> {
        type[Group1]= "SGDKEYPAD",
        symbols[Group1]=  [   Begin  ],
        symbols[Group2]=  [   KP_5   ]
    };
    key  <KP6> {
        type[Group1]= "SGDKEYPAD",
        symbols[Group1]=  [   Right   ],
        symbols[Group2]=  [   KP_6    ]
    };

    key  <KP1> {
        type[Group1]= "SGDKEYPAD",
        symbols[Group1]=  [   End     ],
        symbols[Group2]=  [   KP_1    ]
    };
    key  <KP2> {
        type[Group1]= "SGDKEYPAD",
        symbols[Group1]=  [   Down    ],
        symbols[Group2]=  [   KP_2    ]
    };
    key  <KP3> {
        type[Group1]= "SGDKEYPAD",
        symbols[Group1]=  [   Next    ],
        symbols[Group2]=  [   KP_3    ]
    };

    key  <KP0> {
        type[Group1]= "SGDKEYPAD",
        symbols[Group1]=  [   Insert    ],
        symbols[Group2]=  [   KP_0    ]
    };
    key  <KPDL> {
        type[Group1]= "SGDKEYPAD",
        symbols[Group1]=  [   Delete    ],
        symbols[Group2]=  [   KP_Decimal    ]
    };
    key  <KPEN> {         [   Return    ] };
};


partial alphanumeric_keys function_keys
xkb_symbols "legacy_common" {

    key  <ESC> {         [          Escape ] };
    key <BKSP> {         [       BackSpace,       BackSpace ] };
    key  <TAB> {         [             Tab,    ISO_Left_Tab ] };
    key <RTRN> {         [          Return ] };
    key <LCTL> {         [       Control_L ] };
    key <LFSH> {         [         Shift_L ] };
    key <RTSH> {         [         Shift_R ] };
    key <LALT> {         [           Alt_L,          Meta_L ] };
    key <SPCE> {         [           space ] };
    key <CAPS> {         [       Caps_Lock ] };
    key <FK01> {         [              F1,              F1 ] };
    key <FK02> {         [              F2,              F2 ] };
    key <FK03> {         [              F3,              F3 ] };
    key <FK04> {         [              F4,              F4 ] };
    key <FK05> {         [              F5,              F5 ] };
    key <FK06> {         [              F6,              F6 ] };
    key <FK07> {         [              F7,              F7 ] };
    key <FK08> {         [              F8,              F8 ] };
    key <FK09> {         [              F9,              F9 ] };
    key <FK10> {         [             F10,             F10 ] };
    key <FK11> {         [             F11,             F11 ] };
    key <FK12> {         [             F12,             F12 ] };
    key <NMLK> {         [        Num_Lock ] };
    key <SCLK> {         [     Scroll_Lock ] };
    key <KATA> {         [        Katakana ] };
    key <HIRA> {         [        Hiragana ] };
    key <HENK> {         [     Henkan_Mode ] };
    key <HKTG> {         [ Hiragana_Katakana ] };
    key <MUHE> {         [        Muhenkan ] };
    key <KPEN> {         [        KP_Enter ] };
    key <RCTL> {         [       Control_R ] };
    key <PRSC> {
        type= "PC_ALT_LEVEL2",
        symbols[Group1]= [           Print,         Sys_Req ]
    };
    key <RALT> {
        type[Group1]= "ONE_LEVEL",
        symbols[Group1]= [ ISO_Level3_Shift ]
    };
    key <LNFD> {         [        Linefeed ] };
    key <HOME> {         [            Home ] };
    key   <UP> {         [              Up ] };
    key <PGUP> {         [           Prior ] };
    key <LEFT> {         [            Left ] };
    key <RGHT> {         [           Right ] };
    key  <END> {         [             End ] };
    key <DOWN> {         [            Down ] };
    key <PGDN> {         [            Next ] };
    key  <INS> {         [          Insert ] };
    key <DELE> {         [          Delete ] };
    key <MUTE> {         [   XF86AudioMute ] };
    key <VOL-> {         [ XF86AudioLowerVolume ] };
    key <VOL+> {         [ XF86AudioRaiseVolume ] };
    key <POWR> {         [    XF86PowerOff ] };
    key <KPEQ> {         [        KP_Equal ] };
    key <I126> {         [       plusminus ] };
    key <PAUS> {
        type= "PC_CONTROL_LEVEL2",
        symbols[Group1]= [           Pause,           Break ]
    };
    key <I128> {         [     XF86LaunchA ] };
    key <I129> {         [      KP_Decimal,      KP_Decimal ] };
    key <HNGL> {         [          Hangul ] };
    key <HJCV> {         [    Hangul_Hanja ] };
    key <LWIN> {         [         Super_L ] };
    key <RWIN> {         [         Super_R ] };
    key <COMP> {
        type[Group1]= "TWO_LEVEL",
        symbols[Group1]= [ Menu, Multi_key ]
    };
    key <STOP> {         [          Cancel ] };
    key <AGAI> {         [            Redo ] };
    key <PROP> {         [        SunProps ] };
    key <UNDO> {         [            Undo ] };
    key <FRNT> {         [        SunFront ] };
    key <COPY> {         [        XF86Copy ] };
    key <OPEN> {         [        XF86Open ] };
    key <PAST> {         [       XF86Paste ] };
    key <FIND> {         [            Find ] };
    key  <CUT> {         [         XF86Cut ] };
    key <HELP> {         [            Help ] };
    key <I147> {         [      XF86MenuKB ] };
    key <I148> {         [  XF86Calculator ] };
    key <I150> {         [       XF86Sleep ] };
    key <I151> {         [      XF86WakeUp ] };
    key <I152> {         [    XF86Explorer ] };
    key <I153> {         [        XF86Send ] };
    key <I155> {         [        XF86Xfer ] };
    key <I156> {         [     XF86Launch1 ] };
    key <I157> {         [     XF86Launch2 ] };
    key <I158> {         [         XF86WWW ] };
    key <I159> {         [         XF86DOS ] };
    key <I160> {         [ XF86ScreenSaver ] };
    key <I162> {         [ XF86RotateWindows ] };
    key <I163> {         [        XF86Mail ] };
    key <I164> {         [   XF86Favorites ] };
    key <I165> {         [  XF86MyComputer ] };
    key <I166> {         [        XF86Back ] };
    key <I167> {         [     XF86Forward ] };
    key <I169> {         [       XF86Eject ] };
    key <I170> {         [       XF86Eject,       XF86Eject ] };
    key <I171> {         [   XF86AudioNext ] };
    key <I172> {         [   XF86AudioPlay,  XF86AudioPause ] };
    key <I173> {         [   XF86AudioPrev ] };
    key <I174> {         [   XF86AudioStop,       XF86Eject ] };
    key <I175> {         [ XF86AudioRecord ] };
    key <I176> {         [ XF86AudioRewind ] };
    key <I177> {         [       XF86Phone ] };
    key <I179> {         [       XF86Tools ] };
    key <I180> {         [    XF86HomePage ] };
    key <I181> {         [      XF86Reload ] };
    key <I182> {         [       XF86Close ] };
    key <I185> {         [    XF86ScrollUp ] };
    key <I186> {         [  XF86ScrollDown ] };
    key <I187> {         [       parenleft ] };
    key <I188> {         [      parenright ] };
    key <I189> {         [         XF86New ] };
    key <I190> {         [            Redo ] };
    key <FK13> {         [       XF86Tools ] };
    key <FK14> {         [     XF86Launch5 ] };
    key <FK15> {         [     XF86Launch6 ] };
    key <FK16> {         [     XF86Launch7 ] };
    key <FK17> {         [     XF86Launch8 ] };
    key <FK18> {         [     XF86Launch9 ] };
    key <FK21> {         [ XF86TouchpadToggle ] };
    key <FK22> {         [  XF86TouchpadOn ] };
    key <FK23> {         [ XF86TouchpadOff ] };
    key <MDSW> {         [     Mode_switch ] };
    key  <ALT> {         [        NoSymbol,           Alt_L ] };
    key <META> {         [        NoSymbol,          Meta_L ] };
    key <SUPR> {         [        NoSymbol,         Super_L ] };
    key <HYPR> {         [        NoSymbol,         Hyper_L ] };
    key <I208> {         [   XF86AudioPlay ] };
    key <I209> {         [  XF86AudioPause ] };
    key <I210> {         [     XF86Launch3 ] };
    key <I211> {         [     XF86Launch4 ] };
    key <I212> {         [     XF86LaunchB ] };
    key <I213> {         [     XF86Suspend ] };
    key <I214> {         [       XF86Close ] };
    key <I215> {         [   XF86AudioPlay ] };
    key <I216> {         [ XF86AudioForward ] };
    key <I218> {         [           Print ] };
    key <I220> {         [      XF86WebCam ] };
    key <I223> {         [        XF86Mail ] };
    key <I224> {         [   XF86Messenger ] };
    key <I225> {         [      XF86Search ] };
    key <I226> {         [          XF86Go ] };
    key <I227> {         [     XF86Finance ] };
    key <I228> {         [        XF86Game ] };
    key <I229> {         [        XF86Shop ] };
    key <I231> {         [          Cancel ] };
    key <I232> {         [ XF86MonBrightnessDown ] };
    key <I233> {         [ XF86MonBrightnessUp ] };
    key <I234> {         [  XF86AudioMedia ] };
    key <I235> {         [     XF86Display ] };
    key <I236> {         [ XF86KbdLightOnOff ] };
    key <I237> {         [ XF86KbdBrightnessDown ] };
    key <I238> {         [ XF86KbdBrightnessUp ] };
    key <I239> {         [        XF86Send ] };
    key <I240> {         [       XF86Reply ] };
    key <I241> {         [ XF86MailForward ] };
    key <I242> {         [        XF86Save ] };
    key <I243> {         [   XF86Documents ] };
    key <I244> {         [     XF86Battery ] };
    key <I245> {         [   XF86Bluetooth ] };
    key <I246> {         [        XF86WLAN ] };
};

partial modifier_keys
xkb_symbols "legacy_modifiers" {

    replace key <LVL3> {
      symbols[Group1] = [ ISO_Level3_Shift ]
    };
    key <NMLK>  {
        symbols[Group1]= [      Num_Lock  ],
        virtualMods= AltGr 
    };

    modifier_map Control { <LCTL> };
    modifier_map Shift { <LFSH> };
    modifier_map Shift { <RTSH> };
    modifier_map Mod1 { <LALT> };
    modifier_map Lock { <CAPS> };
    modifier_map Mod2 { <NMLK> };
    modifier_map Mod5 { <LVL3> };
    modifier_map Control { <RCTL> };
    modifier_map Mod4 { <LWIN> };
    modifier_map Mod4 { <RWIN> };
    modifier_map Mod5 { <MDSW> };
    modifier_map Mod1 { <META> };
    modifier_map Mod4 { <SUPR> };
    modifier_map Mod4 { <HYPR> };
};

