1 // The right Alt key (while pressed) chooses the next group. 2 partial modifier_keys 3 xkb_symbols "switch" { 4 key <RALT> {[ Mode_switch, Multi_key ]}; 5 }; 6 7 // The left Alt key (while pressed) chooses the next group. 8 partial modifier_keys 9 xkb_symbols "lswitch" { 10 key <LALT> {[ Mode_switch, Multi_key ]}; 11 }; 12 13 // The left Win key (while pressed) chooses the next group. 14 partial modifier_keys 15 xkb_symbols "lwin_switch" { 16 key <LWIN> {[ Mode_switch, Multi_key ]}; 17 }; 18 19 // The right Win key (while pressed) chooses the next group. 20 partial modifier_keys 21 xkb_symbols "rwin_switch" { 22 key <RWIN> {[ Mode_switch, Multi_key ]}; 23 }; 24 25 // Either Win key (while pressed) chooses the next group. 26 partial modifier_keys 27 xkb_symbols "win_switch" { 28 include "group(lwin_switch)" 29 include "group(rwin_switch)" 30 }; 31 32 // The Menu key (while pressed) chooses the next group, 33 // while Shift+Menu acts as Menu. 34 partial modifier_keys 35 xkb_symbols "menu_switch" { 36 key <MENU> {[ Mode_switch, Menu ]}; 37 }; 38 39 // The right Ctrl key (while pressed) chooses the next group. 40 partial modifier_keys 41 xkb_symbols "rctrl_switch" { 42 key <RCTL> {[ Mode_switch ]}; 43 }; 44 45 // The Caps_Lock key (while pressed) chooses the next group, 46 // while Alt+Caps_Lock toggles CapsLock. 47 partial modifier_keys 48 xkb_symbols "caps_switch" { 49 key <CAPS> {[ Mode_switch, Caps_Lock ], type[group1] = "PC_ALT_LEVEL2" }; 50 }; 51 52 // Pressing the right Alt key switches to the next group. 53 partial modifier_keys 54 xkb_symbols "toggle" { 55 key <RALT> {[ ISO_Next_Group ]}; 56 }; 57 58 // Pressing the left Alt key switches to the next group. 59 partial modifier_keys 60 xkb_symbols "lalt_toggle" { 61 key <LALT> {[ ISO_Next_Group ]}; 62 }; 63 64 // Pressing both Shift keys switches to the next or previous group 65 // (depending on which Shift is pressed first). 66 partial modifier_keys 67 xkb_symbols "shifts_toggle" { 68 key <LFSH> {[ Shift_L, ISO_Prev_Group ]}; 69 key <RTSH> {[ Shift_R, ISO_Next_Group ]}; 70 }; 71 72 // Pressing Caps_Lock switches to the next group, 73 // while Shift+Caps_Lock toggles CapsLock. 74 partial modifier_keys 75 xkb_symbols "caps_toggle" { 76 key <CAPS> {[ ISO_Next_Group, Caps_Lock ], type[group1] = "TWO_LEVEL" }; 77 }; 78 79 // Pressing Shift+Caps_Lock switches to the next group, 80 // while plain Caps_Lock toggles CapsLock. 81 partial modifier_keys 82 xkb_symbols "shift_caps_toggle" { 83 key <CAPS> {[ Caps_Lock, ISO_Next_Group ], type[group1] = "TWO_LEVEL" }; 84 }; 85 86 // Pressing Alt+Space switches to the next group. 87 partial modifier_keys 88 xkb_symbols "alt_space_toggle" { 89 key <SPCE> {[ space, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" }; 90 }; 91 92 // Pressing Win+Space switches to the next group. 93 partial modifier_keys 94 xkb_symbols "win_space_toggle" { 95 key <SPCE> {[ space, ISO_Next_Group ], type[group1] = "PC_SUPER_LEVEL2" }; 96 }; 97 98 // Pressing Ctrl+Space switches to the next group. 99 partial modifier_keys 100 xkb_symbols "ctrl_space_toggle" { 101 key <SPCE> {[ space, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; 102 }; 103 104 105 // Pressing Caps_Lock selects the first group, 106 // pressing Shift+Caps_Lock selects the second group. 107 partial modifier_keys 108 xkb_symbols "caps_select" { 109 key <CAPS> {[ ISO_First_Group, ISO_Last_Group ], type[group1] = "TWO_LEVEL" }; 110 }; 111 112 // Pressing the left Win key selects the first group, 113 // pressing the right Win key or the Menu key selects the second group. 114 partial modifier_keys 115 xkb_symbols "win_menu_select" { 116 key <LWIN> {[ ISO_First_Group ]}; 117 key <RWIN> {[ ISO_Last_Group ]}; 118 key <MENU> {[ ISO_Last_Group ]}; 119 }; 120 121 // Pressing the left Ctrl key selects the first group, 122 // pressing the right Ctrl key selects the second group. 123 partial modifier_keys 124 xkb_symbols "ctrl_select" { 125 key <LCTL> {[ ISO_First_Group ]}; 126 key <RCTL> {[ ISO_Last_Group ]}; 127 }; 128 129 130 // 131 // CTRL-SHIFT toggle section 132 // 133 partial modifier_keys 134 xkb_symbols "lctrl_lshift_toggle" { 135 key <LFSH> {[ Shift_L, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; 136 key <LCTL> {[ Control_L, ISO_Next_Group ]}; 137 }; 138 139 partial modifier_keys 140 xkb_symbols "lctrl_lshift_toggle_rev" { 141 key <LFSH> {[ Shift_L, ISO_Prev_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; 142 key <LCTL> {[ Control_L, ISO_Prev_Group ]}; 143 }; 144 145 partial modifier_keys 146 xkb_symbols "rctrl_rshift_toggle" { 147 key <RTSH> {[ Shift_R, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; 148 key <RCTL> {[ Control_R, ISO_Next_Group ]}; 149 }; 150 151 partial modifier_keys 152 xkb_symbols "ctrl_shift_toggle" { 153 include "group(lctrl_lshift_toggle)" 154 include "group(rctrl_rshift_toggle)" 155 }; 156 157 partial modifier_keys 158 xkb_symbols "ctrl_shift_toggle_bidir" { 159 include "group(lctrl_lshift_toggle_rev)" 160 include "group(rctrl_rshift_toggle)" 161 }; 162 163 164 // 165 // CTRL-ALT toggle section 166 // 167 partial modifier_keys 168 xkb_symbols "lctrl_lalt_toggle" { 169 key <LALT> {[ NoSymbol, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; 170 key <LCTL> {[ Control_L, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" }; 171 }; 172 173 partial modifier_keys 174 xkb_symbols "lctrl_lalt_toggle_rev" { 175 key <LALT> {[ NoSymbol, ISO_Prev_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; 176 key <LCTL> {[ Control_L, ISO_Prev_Group ], type[group1] = "PC_ALT_LEVEL2" }; 177 }; 178 179 partial modifier_keys 180 xkb_symbols "rctrl_ralt_toggle" { 181 key <RALT> {[ NoSymbol, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; 182 key <RCTL> {[ Control_R, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" }; 183 }; 184 185 partial modifier_keys 186 xkb_symbols "ctrl_alt_toggle" { 187 include "group(lctrl_lalt_toggle)" 188 include "group(rctrl_ralt_toggle)" 189 }; 190 191 partial modifier_keys 192 xkb_symbols "ctrl_alt_toggle_bidir" { 193 include "group(lctrl_lalt_toggle_rev)" 194 include "group(rctrl_ralt_toggle)" 195 }; 196 197 198 // 199 // ALT-SHIFT toggle section 200 // 201 partial modifier_keys 202 xkb_symbols "lalt_lshift_toggle" { 203 key <LALT> {[ NoSymbol, ISO_Next_Group ], type[group1] = "TWO_LEVEL" }; 204 key <LFSH> {[ Shift_L, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" }; 205 }; 206 207 partial modifier_keys 208 xkb_symbols "lalt_lshift_toggle_rev" { 209 key <LALT> {[ NoSymbol, ISO_Prev_Group ], type[group1] = "TWO_LEVEL" }; 210 key <LFSH> {[ Shift_L, ISO_Prev_Group ], type[group1] = "PC_ALT_LEVEL2" }; 211 }; 212 213 partial modifier_keys 214 xkb_symbols "ralt_rshift_toggle" { 215 key <RALT> {[ NoSymbol, ISO_Next_Group ], type[group1] = "TWO_LEVEL" }; 216 key <RTSH> {[ Shift_R, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" }; 217 }; 218 219 partial modifier_keys 220 xkb_symbols "alt_shift_toggle" { 221 include "group(lalt_lshift_toggle)" 222 include "group(ralt_rshift_toggle)" 223 }; 224 225 partial modifier_keys 226 xkb_symbols "alt_shift_toggle_bidir" { 227 include "group(lalt_lshift_toggle_rev)" 228 include "group(ralt_rshift_toggle)" 229 }; 230 231 232 // Pressing the Menu key switches to the next group, 233 // while Shift+Menu acts as Menu. 234 partial modifier_keys 235 xkb_symbols "menu_toggle" { 236 key <MENU> {[ ISO_Next_Group, Menu ]}; 237 }; 238 239 // Pressing the left Win key switches to the next group. 240 partial modifier_keys 241 xkb_symbols "lwin_toggle" { 242 key <LWIN> {[ ISO_Next_Group ]}; 243 }; 244 245 // Pressing the right Win key switches to the next group. 246 partial modifier_keys 247 xkb_symbols "rwin_toggle" { 248 key <RWIN> {[ ISO_Next_Group ]}; 249 }; 250 251 // Pressing both Ctrl keys switches to the next or previous group 252 // (depending on which Ctrl is pressed first). 253 partial modifier_keys 254 xkb_symbols "ctrls_toggle" { 255 key <LCTL> {[ NoSymbol, ISO_Prev_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; 256 key <RCTL> {[ NoSymbol, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; 257 }; 258 259 // Pressing both Alt keys switches to the next or previous group 260 // (depending on which Alt is pressed first). 261 partial modifier_keys 262 xkb_symbols "alts_toggle" { 263 key <LALT> {[ Alt_L, ISO_Prev_Group ], type[group1] = "PC_ALT_LEVEL2" }; 264 key <RALT> {[ Alt_R, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" }; 265 }; 266 267 // Pressing Alt plus AltGr switches to the next or previous group 268 // (depending on which one is pressed first). 269 partial modifier_keys 270 xkb_symbols "alt_altgr_toggle" { 271 key <LALT> {[ Alt_L, Alt_L, ISO_Prev_Group, ISO_Prev_Group ], 272 type[group1] = "FOUR_LEVEL" }; 273 key <RALT> {[ ISO_Level3_Shift, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" }; 274 }; 275 276 // Pressing the left Shift key switches to the next group. 277 partial modifier_keys 278 xkb_symbols "lshift_toggle" { 279 key <LFSH> {[ ISO_Next_Group ]}; 280 }; 281 282 // Pressing the right Shift key switches to the next group. 283 partial modifier_keys 284 xkb_symbols "rshift_toggle" { 285 key <RTSH> {[ ISO_Next_Group ]}; 286 }; 287 288 // Pressing the left Ctrl key switches to the next group. 289 partial modifier_keys 290 xkb_symbols "lctrl_toggle" { 291 key <LCTL> {[ ISO_Next_Group ]}; 292 }; 293 294 // Pressing the right Ctrl key switches to the next group. 295 partial modifier_keys 296 xkb_symbols "rctrl_toggle" { 297 key <RCTL> {[ ISO_Next_Group ]}; 298 }; 299 300 // Pressing Alt+Caps_Lock switches to the next group, 301 // while pressing Caps_Lock alone toggles CapsLock. 302 partial modifier_keys 303 xkb_symbols "alt_caps_toggle" { 304 key <CAPS> {[ Caps_Lock, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" }; 305 }; 306 307 hidden partial modifier_keys 308 xkb_symbols "olpc" { 309 key <I219> {[ ISO_Next_Group, ISO_Prev_Group ]}; 310 }; 311 312 // Pressing the Scroll Lock key switches to the next group. 313 partial modifier_keys 314 xkb_symbols "sclk_toggle" { 315 key <SCLK> {[ ISO_Next_Group ]}; 316 }; 317 318 // Pressing Ctrl + the left Win key selects the first group, 319 // pressing Ctrl + the Menu key selects the second group. 320 partial modifier_keys 321 xkb_symbols "lctrl_lwin_rctrl_menu" { 322 key <LWIN> {[ Super_L, ISO_First_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; 323 key <MENU> {[ Menu, ISO_Last_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; 324 }; 325 326 // Pressing Ctrl + the left Win key switches to the next group. 327 partial modifier_keys 328 xkb_symbols "lctrl_lwin_toggle" { 329 key <LWIN> {[ Super_L, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" }; 330 }; 331