// eliminate the caps lock key completely (replace with control)
partial modifier_keys 
xkb_symbols "nocaps" {
    replace key <CAPS>	{  [ Control_L, Control_L ] };
    modifier_map  Control { <CAPS>, <LCTL> };
};

// replace left control with Meta
xkb_symbols "lctrl_meta" {
    replace key <LCTL>	{  [ Meta_L ] };
};

// swap the caps lock key with the left control key
partial modifier_keys 
xkb_symbols "swapcaps" {
    replace key <CAPS>	{  [ Control_L ] };
    replace key <LCTL>	{  [ Caps_Lock ] };
};

// moves the control key to the middle row and the caps lock
// to the bottom row.  Only works if the geometry or keycodes
// file has defined appropriate aliases for the keys in question.
partial modifier_keys 
xkb_symbols "ac_ctrl" {
    replace key <AC00>	{  [ Control_L ] };
    replace key <AA00>	{  [ Caps_Lock ] };
};

// Moves the control key to the bottom row and the caps lock
// to the middle row.  Only works if the geometry or keycodes
// file has defined appropriate aliases for the keys in question.
partial modifier_keys 
xkb_symbols "aa_ctrl" {
    replace key <AA00>	{  [ Control_L ] };
    replace key <AC00>	{  [ Caps_Lock ] };
};

// Right Ctrl works as Right Alt
partial modifier_keys 
xkb_symbols "rctrl_ralt" {
    key <RCTL>	{  symbols[Group1]= [ Alt_R ] };
};

// Menu works as Right Ctrl
partial modifier_keys
xkb_symbols "menu_rctrl" {
  replace key <MENU> { [ Control_R, Control_R ] };
  modifier_map Control { Control_L, <MENU> };
};

// right alt functions as another ctrl key
partial modifier_keys 
xkb_symbols "ralt_rctrl" {
    replace key <RALT> { type[Group1]    = "TWO_LEVEL",
                         symbols[Group1] = [ Control_R, Control_R ] };
    modifier_map Control { <RALT> }; 
};
