// The right Alt key (while pressed) chooses the next group. partial modifier_keys xkb_symbols "switch" { key {[ Mode_switch, Multi_key ]}; }; // The left Alt key (while pressed) chooses the next group. partial modifier_keys xkb_symbols "lswitch" { key {[ Mode_switch, Multi_key ]}; }; // The left Win key (while pressed) chooses the next group. partial modifier_keys xkb_symbols "lwin_switch" { key {[ Mode_switch, Multi_key ]}; }; // The right Win key (while pressed) chooses the next group. partial modifier_keys xkb_symbols "rwin_switch" { key {[ Mode_switch, Multi_key ]}; }; // Either Win key (while pressed) chooses the next group. partial modifier_keys xkb_symbols "win_switch" { include "group(lwin_switch)" include "group(rwin_switch)" }; // The Menu key (while pressed) chooses the next group, // while Shift+Menu acts as Menu. partial modifier_keys xkb_symbols "menu_switch" { key {[ Mode_switch, Menu ]}; }; // The right Ctrl key (while pressed) chooses the next group. partial modifier_keys xkb_symbols "rctrl_switch" { key {[ Mode_switch ]}; }; // The Caps_Lock key (while pressed) chooses the next group, // while Alt+Caps_Lock toggles CapsLock. partial modifier_keys xkb_symbols "caps_switch" { key {[ Mode_switch, Caps_Lock ], type[group1] = "PC_ALT_LEVEL2" }; }; // Pressing the right Alt key switches to the next group. partial modifier_keys xkb_symbols "toggle" { key {[ ISO_Next_Group ]}; }; // Pressing the left Alt key switches to the next group. partial modifier_keys xkb_symbols "lalt_toggle" { key {[ ISO_Next_Group ]}; }; // Pressing both Shift keys switches to the next or previous group // (depending on which Shift is pressed first). partial modifier_keys xkb_symbols "shifts_toggle" { key {[ Shift_L, ISO_Prev_Group ], type[group1] = "TWO_LEVEL" }; key {[ Shift_R, ISO_Next_Group ], type[group1] = "TWO_LEVEL" }; }; // Pressing Caps_Lock switches to the next group, // while Shift+Caps_Lock toggles CapsLock. partial modifier_keys xkb_symbols "caps_toggle" { key {[ ISO_Next_Group, Caps_Lock ], type[group1] = "TWO_LEVEL" }; }; // Pressing Shift+Caps_Lock switches to the next group. partial modifier_keys xkb_symbols "shift_caps_toggle" { key {[ any, ISO_Next_Group ], type[group1] = "TWO_LEVEL" }; }; // Pressing Alt+Space switches to the next group. partial modifier_keys xkb_symbols "alt_space_toggle" { key {[ space, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" }; }; // Pressing Win+Space switches to the next group. partial modifier_keys xkb_symbols "win_space_toggle" { key {[ space, ISO_Next_Group ], type[group1] = "PC_SUPER_LEVEL2" }; }; // Pressing Ctrl+Space switches to the next group. partial modifier_keys xkb_symbols "ctrl_space_toggle" { key {[ space, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; }; // Pressing Caps_Lock selects the first group, // pressing Shift+Caps_Lock selects the second group. partial modifier_keys xkb_symbols "caps_select" { key {[ ISO_First_Group, ISO_Last_Group ], type[group1] = "TWO_LEVEL" }; }; // Pressing the left Win key selects the first group, // pressing the right Win key or the Menu key selects the second group. partial modifier_keys xkb_symbols "win_menu_select" { key {[ ISO_First_Group ]}; key {[ ISO_Last_Group ]}; key {[ ISO_Last_Group ]}; }; // Pressing the left Ctrl key selects the first group, // pressing the right Ctrl key selects the second group. partial modifier_keys xkb_symbols "ctrl_select" { key {[ ISO_First_Group ]}; key {[ ISO_Last_Group ]}; }; // // CTRL-SHIFT toggle section // partial modifier_keys xkb_symbols "lctrl_lshift_toggle" { key {[ Shift_L, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; key {[ Control_L, ISO_Next_Group ]}; }; partial modifier_keys xkb_symbols "lctrl_lshift_toggle_rev" { key {[ Shift_L, ISO_Prev_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; key {[ Control_L, ISO_Prev_Group ]}; }; partial modifier_keys xkb_symbols "rctrl_rshift_toggle" { key {[ Shift_R, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; key {[ Control_R, ISO_Next_Group ]}; }; partial modifier_keys xkb_symbols "ctrl_shift_toggle" { include "group(lctrl_lshift_toggle)" include "group(rctrl_rshift_toggle)" }; partial modifier_keys xkb_symbols "ctrl_shift_toggle_bidir" { include "group(lctrl_lshift_toggle_rev)" include "group(rctrl_rshift_toggle)" }; // // CTRL-ALT toggle section // partial modifier_keys xkb_symbols "lctrl_lalt_toggle" { key {[ NoSymbol, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; key {[ Control_L, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" }; }; partial modifier_keys xkb_symbols "lctrl_lalt_toggle_rev" { key {[ NoSymbol, ISO_Prev_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; key {[ Control_L, ISO_Prev_Group ], type[group1] = "PC_ALT_LEVEL2" }; }; partial modifier_keys xkb_symbols "rctrl_ralt_toggle" { key {[ NoSymbol, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; key {[ Control_R, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" }; }; partial modifier_keys xkb_symbols "ctrl_alt_toggle" { include "group(lctrl_lalt_toggle)" include "group(rctrl_ralt_toggle)" }; partial modifier_keys xkb_symbols "ctrl_alt_toggle_bidir" { include "group(lctrl_lalt_toggle_rev)" include "group(rctrl_ralt_toggle)" }; // // ALT-SHIFT toggle section // partial modifier_keys xkb_symbols "lalt_lshift_toggle" { key {[ NoSymbol, ISO_Next_Group ], type[group1] = "TWO_LEVEL" }; key {[ Shift_L, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" }; }; partial modifier_keys xkb_symbols "lalt_lshift_toggle_rev" { key {[ NoSymbol, ISO_Prev_Group ], type[group1] = "TWO_LEVEL" }; key {[ Shift_L, ISO_Prev_Group ], type[group1] = "PC_ALT_LEVEL2" }; }; partial modifier_keys xkb_symbols "ralt_rshift_toggle" { key {[ NoSymbol, ISO_Next_Group ], type[group1] = "TWO_LEVEL" }; key {[ Shift_R, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" }; }; partial modifier_keys xkb_symbols "alt_shift_toggle" { include "group(lalt_lshift_toggle)" include "group(ralt_rshift_toggle)" }; partial modifier_keys xkb_symbols "alt_shift_toggle_bidir" { include "group(lalt_lshift_toggle_rev)" include "group(ralt_rshift_toggle)" }; // Pressing the Menu key switches to the next group, // while Shift+Menu acts as Menu. partial modifier_keys xkb_symbols "menu_toggle" { key {[ ISO_Next_Group, Menu ]}; }; // Pressing the left Win key switches to the next group. partial modifier_keys xkb_symbols "lwin_toggle" { key {[ ISO_Next_Group ]}; }; // Pressing the right Win key switches to the next group. partial modifier_keys xkb_symbols "rwin_toggle" { key {[ ISO_Next_Group ]}; }; // Pressing both Ctrl keys switches to the next or previous group // (depending on which Ctrl is pressed first). partial modifier_keys xkb_symbols "ctrls_toggle" { key {[ NoSymbol, ISO_Prev_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; key {[ NoSymbol, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; }; // Pressing both Alt keys switches to the next or previous group // (depending on which Alt is pressed first). partial modifier_keys xkb_symbols "alts_toggle" { key {[ Alt_L, ISO_Prev_Group ], type[group1] = "PC_ALT_LEVEL2" }; key {[ Alt_R, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" }; }; // Pressing Alt plus AltGr switches to the next or previous group // (depending on which one is pressed first). partial modifier_keys xkb_symbols "alt_altgr_toggle" { key {[ Alt_L, Alt_L, ISO_Prev_Group, ISO_Prev_Group ], type[group1] = "FOUR_LEVEL" }; key {[ ISO_Level3_Shift, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" }; }; // Pressing the left Shift key switches to the next group. partial modifier_keys xkb_symbols "lshift_toggle" { key {[ ISO_Next_Group ]}; }; // Pressing the right Shift key switches to the next group. partial modifier_keys xkb_symbols "rshift_toggle" { key {[ ISO_Next_Group ]}; }; // Pressing the left Ctrl key switches to the next group. partial modifier_keys xkb_symbols "lctrl_toggle" { key {[ ISO_Next_Group ]}; }; // Pressing the right Ctrl key switches to the next group. partial modifier_keys xkb_symbols "rctrl_toggle" { key {[ ISO_Next_Group ]}; }; // Pressing Alt+Caps_Lock switches to the next group. partial modifier_keys xkb_symbols "alt_caps_toggle" { key {[ any, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" }; }; hidden partial modifier_keys xkb_symbols "olpc" { key {[ ISO_Next_Group, ISO_Prev_Group ]}; }; // Pressing the Scroll Lock key switches to the next group. partial modifier_keys xkb_symbols "sclk_toggle" { key {[ ISO_Next_Group ]}; }; // Pressing Ctrl + the left Win key selects the first group, // pressing Ctrl + the Menu key selects the second group. partial modifier_keys xkb_symbols "lctrl_lwin_rctrl_menu" { key {[ Super_L, ISO_First_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; key {[ Menu, ISO_Last_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; }; // Pressing Ctrl + the left Win key switches to the next group. partial modifier_keys xkb_symbols "lctrl_lwin_toggle" { key {[ Super_L, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; };