// Actions which control the server's behavior

partial keypad_keys function_keys
xkb_symbols "xfree86" {
    include "srvr_ctrl(stdkeypad)"
    include "srvr_ctrl(fkey2vt)"
};

partial keypad_keys 
xkb_symbols "stdkeypad" {

// Ungrab cancels server/keyboard/pointer grabs
    key <KPDV> {
	type="CTRL+ALT",
	symbols[Group1]= [ KP_Divide, VoidSymbol, VoidSymbol, VoidSymbol, XF86_Ungrab ]
    };

// ClsGrb kills whichever client has a grab in effect
    key <KPMU> {
	type="CTRL+ALT",
	symbols[Group1]= [ KP_Multiply, VoidSymbol, VoidSymbol, VoidSymbol, XF86_ClearGrab ]
    };

// -VMode switches to the previous video mode
    key <KPSU> {
	type="CTRL+ALT",
	symbols[Group1]= [ KP_Subtract, VoidSymbol, VoidSymbol, VoidSymbol, XF86_Prev_VMode ]
    };

// +VMode switches to the next video mode
    key <KPAD> {
	type="CTRL+ALT",
	symbols[Group1]= [ KP_Add, VoidSymbol, VoidSymbol, VoidSymbol, XF86_Next_VMode]
    };

};

partial function_keys 
xkb_symbols "fkey2vt" {

    key <FK01> {
	type="CTRL+ALT",
	symbols[Group1]= [ F1, VoidSymbol, VoidSymbol, VoidSymbol, XF86_Switch_VT_1 ]
    };

    key <FK02> {
	type="CTRL+ALT",
	symbols[Group1]= [ F2, VoidSymbol, VoidSymbol, VoidSymbol, XF86_Switch_VT_2 ]
    };

    key <FK03> {
	type="CTRL+ALT",
	symbols[Group1]= [ F3, VoidSymbol, VoidSymbol, VoidSymbol, XF86_Switch_VT_3 ]
    };

    key <FK04> {
	type="CTRL+ALT",
	symbols[Group1]= [ F4, VoidSymbol, VoidSymbol, VoidSymbol, XF86_Switch_VT_4 ]
    };

    key <FK05> {
	type="CTRL+ALT",
	symbols[Group1]= [ F5, VoidSymbol, VoidSymbol, VoidSymbol, XF86_Switch_VT_5 ]
    };

    key <FK06> {
	type="CTRL+ALT",
	symbols[Group1]= [ F6, VoidSymbol, VoidSymbol, VoidSymbol, XF86_Switch_VT_6 ]
    };

    key <FK07> {
	type="CTRL+ALT",
	symbols[Group1]= [ F7, VoidSymbol, VoidSymbol, VoidSymbol, XF86_Switch_VT_7 ]
    };

    key <FK08> {
	type="CTRL+ALT",
	symbols[Group1]= [ F8, VoidSymbol, VoidSymbol, VoidSymbol, XF86_Switch_VT_8 ]
    };

    key <FK09> {
	type="CTRL+ALT",
	symbols[Group1]= [ F9, VoidSymbol, VoidSymbol, VoidSymbol, XF86_Switch_VT_9 ]
    };

    key <FK10> {
	type="CTRL+ALT",
	symbols[Group1]= [ F10, VoidSymbol, VoidSymbol, VoidSymbol, XF86_Switch_VT_10 ]
    };

    key <FK11> {
	type="CTRL+ALT",
	symbols[Group1]= [ F11, VoidSymbol, VoidSymbol, VoidSymbol, XF86_Switch_VT_11 ]
    };

    key <FK12> {
	type="CTRL+ALT",
	symbols[Group1]= [ F12, VoidSymbol, VoidSymbol, VoidSymbol, XF86_Switch_VT_12 ]
    };

};

partial function_keys keypad_keys
xkb_symbols "no_srvr_keys" {

    key.type="TWO_LEVEL";

    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 <KPDV> { [ KP_Divide,	KP_Divide	] };
    key <KPMU> { [ KP_Multiply,	KP_Multiply	] };
    key <KPSU> { [ KP_Subtract,	KP_Subtract	] };
    key <KPAD> { [ KP_Add,	KP_Add		] };
};