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