1 // The right Alt key (while pressed) chooses the second keyboard group.
5 symbols[Group1] = [ Mode_switch, Multi_key ],
10 // The left Alt key (while pressed) chooses the second keyboard group.
12 xkb_symbols "lswitch" {
14 symbols[Group1] = [ Mode_switch, Multi_key ],
19 // Either Win key (while pressed) chooses the second keyboard group.
21 xkb_symbols "win_switch" {
22 include "group(lwin_switch)"
23 include "group(rwin_switch)"
26 // The left Win key (while pressed) chooses the second keyboard group.
27 // (Using this map, you should declare your keyboard as pc101 or pc102
28 // instead of pc104 or pc105.)
30 xkb_symbols "lwin_switch" {
32 symbols[Group1] = [ Mode_switch, Multi_key ],
37 // The right Win key (while pressed) chooses the second keyboard group.
38 // (Using this map, you should declare your keyboard as pc101 or pc102
39 // instead of pc104 or pc105.)
41 xkb_symbols "rwin_switch" {
43 symbols[Group1] = [ Mode_switch, Multi_key ],
48 // The right Menu key (while pressed) chooses the second keyboard group.
49 // while Shift+Menu acts as Menu.
51 xkb_symbols "menu_switch" {
53 symbols[Group1] = [ Mode_switch, Menu ],
58 // The right Ctrl key (while pressed) chooses the second keyboard group.
59 // (Needed mainly for the Canadian keyboard.)
61 xkb_symbols "rctrl_switch" {
63 symbols[Group1] = [ Mode_switch ]
67 // Pressing the right Alt key switches to the next group.
69 xkb_symbols "toggle" {
70 virtual_modifiers AltGr;
72 symbols[Group1] = [ ISO_Next_Group ],
77 // Pressing both Shift keys switches to the next or previous group
78 // (depending on which Shift is pressed first).
80 xkb_symbols "shifts_toggle" {
81 key <LFSH> { [ Shift_L, ISO_Prev_Group ] };
82 key <RTSH> { [ Shift_R, ISO_Next_Group ] };
85 // Pressing Shift+Caps_Lock switches to the next group.
87 xkb_symbols "shift_caps_toggle" {
88 key <CAPS> { [ Caps_Lock, ISO_Next_Group ] };
91 // Pressing Caps_Lock selects the first group,
92 // pressing Shift+Caps_Lock selects the last group.
94 xkb_symbols "shift_caps_switch" {
95 key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] };
98 // toggle using win + space as combo
100 xkb_symbols "win_space_toggle" {
102 type="PC_SUPER_LEVEL2",
103 symbols[Group1]= [ space, ISO_Next_Group ],
104 symbols[Group2]= [ space, ISO_Next_Group ]
108 // Pressing the left Win key selects the first group,
109 // pressing the right Win or the Menu key selects the last group.
110 partial modifier_keys
111 xkb_symbols "win_menu_switch" {
112 virtual_modifiers AltGr;
115 symbols[Group1] = [ ISO_First_Group ]
119 symbols[Group1] = [ ISO_Last_Group ]
123 symbols[Group1] = [ ISO_Last_Group ]
127 // Pressing the left Ctrl key selects the first group,
128 // pressing the right Ctrl key selects the last group.
129 partial modifier_keys
130 xkb_symbols "lctrl_rctrl_switch" {
131 virtual_modifiers AltGr;
134 symbols[Group1] = [ ISO_First_Group ]
138 symbols[Group1] = [ ISO_Last_Group ]
144 // CTRL-SHIFT toggle section
146 partial modifier_keys
147 xkb_symbols "lctrl_lshift_toggle" {
149 type[Group1]="PC_CONTROL_LEVEL2",
150 symbols[Group1] = [ Shift_L, ISO_Next_Group ]
152 key <LCTL> { [ Control_L, ISO_Next_Group ] };
155 partial modifier_keys
156 xkb_symbols "lctrl_lshift_toggle_rev" {
158 type[Group1]="PC_CONTROL_LEVEL2",
159 symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
161 key <LCTL> { [ Control_L, ISO_Prev_Group ] };
164 partial modifier_keys
165 xkb_symbols "rctrl_rshift_toggle" {
167 type[Group1]="PC_CONTROL_LEVEL2",
168 symbols[Group1] = [ Shift_R, ISO_Next_Group ]
170 key <RCTL> { [ Control_R, ISO_Next_Group ] };
173 partial modifier_keys
174 xkb_symbols "ctrl_shift_toggle" {
175 include "group(lctrl_lshift_toggle)"
176 include "group(rctrl_rshift_toggle)"
179 partial modifier_keys
180 xkb_symbols "ctrl_shift_toggle_bidir" {
181 include "group(lctrl_lshift_toggle_rev)"
182 include "group(rctrl_rshift_toggle)"
187 // CTRL-ALT toggle section
189 partial modifier_keys
190 xkb_symbols "lctrl_lalt_toggle" {
191 virtual_modifiers Alt;
193 type[Group1]="PC_CONTROL_LEVEL2",
194 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
198 type[Group1]="PC_ALT_LEVEL2",
199 symbols[Group1] = [ Control_L, ISO_Next_Group ]
203 partial modifier_keys
204 xkb_symbols "lctrl_lalt_toggle_rev" {
205 virtual_modifiers Alt;
207 type[Group1]="PC_CONTROL_LEVEL2",
208 symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
212 type[Group1]="PC_ALT_LEVEL2",
213 symbols[Group1] = [ Control_L, ISO_Prev_Group ]
217 partial modifier_keys
218 xkb_symbols "rctrl_ralt_toggle" {
219 virtual_modifiers Alt;
221 type[Group1]="PC_CONTROL_LEVEL2",
222 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
226 type[Group1]="PC_ALT_LEVEL2",
227 symbols[Group1] = [ Control_R, ISO_Next_Group ]
231 partial modifier_keys
232 xkb_symbols "ctrl_alt_toggle" {
233 include "group(lctrl_lalt_toggle)"
234 include "group(rctrl_ralt_toggle)"
237 partial modifier_keys
238 xkb_symbols "ctrl_alt_toggle_bidir" {
239 include "group(lctrl_lalt_toggle_rev)"
240 include "group(rctrl_ralt_toggle)"
245 // ALT-SHIFT toggle section
247 partial modifier_keys
248 xkb_symbols "lalt_lshift_toggle" {
249 virtual_modifiers Alt;
251 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
255 type[Group1]="PC_ALT_LEVEL2",
256 symbols[Group1] = [ Shift_L, ISO_Next_Group ]
260 partial modifier_keys
261 xkb_symbols "lalt_lshift_toggle_rev" {
262 virtual_modifiers Alt;
264 symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
268 type[Group1]="PC_ALT_LEVEL2",
269 symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
273 partial modifier_keys
274 xkb_symbols "ralt_rshift_toggle" {
275 virtual_modifiers Alt;
277 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
281 type[Group1]="PC_ALT_LEVEL2",
282 symbols[Group1] = [ Shift_R, ISO_Next_Group ]
286 partial modifier_keys
287 xkb_symbols "alt_shift_toggle" {
288 include "group(lalt_lshift_toggle)"
289 include "group(ralt_rshift_toggle)"
292 partial modifier_keys
293 xkb_symbols "alt_shift_toggle_bidir" {
294 include "group(lalt_lshift_toggle_rev)"
295 include "group(ralt_rshift_toggle)"
299 // Pressing the Menu key switches to the next group,
300 // while Shift+Menu acts as Menu.
301 partial modifier_keys
302 xkb_symbols "menu_toggle" {
303 key <MENU> { [ ISO_Next_Group, Menu ] };
306 // Pressing the left Win key switches to the next group.
307 // (Using this map, you should declare your keyboard as
308 // pc101 or pc102 instead of pc104 or pc105.)
309 partial modifier_keys
310 xkb_symbols "lwin_toggle" {
311 virtual_modifiers AltGr;
314 symbols[Group1] = [ ISO_Next_Group ]
318 // Pressing the right Win key switches to the next group.
319 // (Using this map, you should declare your keyboard as
320 // pc101 or pc102 instead of pc104 or pc105.)
321 partial modifier_keys
322 xkb_symbols "rwin_toggle" {
323 virtual_modifiers AltGr;
326 symbols[Group1] = [ ISO_Next_Group ]
330 // Pressing both Ctrl keys switches to the next or previous group
331 // (depending on which Ctrl is pressed first).
332 partial modifier_keys
333 xkb_symbols "ctrls_toggle" {
334 virtual_modifiers LControl, RControl;
336 type[Group1]="PC_CONTROL_LEVEL2",
337 symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
338 virtualMods= LControl
341 type[Group1]="PC_CONTROL_LEVEL2",
342 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
343 virtualMods= RControl
347 // Pressing both Alt switches to the next or previous group
348 // (depending on which Alt is pressed first).
349 partial modifier_keys
350 xkb_symbols "alts_toggle" {
351 virtual_modifiers LAlt, RAlt;
353 type[Group1]="PC_RALT_LEVEL2",
354 symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
358 type[Group1]="PC_LALT_LEVEL2",
359 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
364 // Pressing the left Shift key switches to the next group.
365 partial modifier_keys
366 xkb_symbols "lshift_toggle" {
367 virtual_modifiers AltGr;
369 symbols[Group1] = [ ISO_Next_Group ],
374 // Pressing the right Shift key switches to the next group.
375 partial modifier_keys
376 xkb_symbols "rshift_toggle" {
377 virtual_modifiers AltGr;
379 symbols[Group1] = [ ISO_Next_Group ],
384 // Pressing the left Alt key switches to the next group.
385 partial modifier_keys
386 xkb_symbols "lalt_toggle" {
387 virtual_modifiers AltGr;
389 symbols[Group1] = [ ISO_Next_Group ],
394 // Pressing the left Ctrl key switches to the next group.
395 partial modifier_keys
396 xkb_symbols "lctrl_toggle" {
397 virtual_modifiers AltGr;
399 symbols[Group1] = [ ISO_Next_Group ],
404 // Pressing the right Ctrl key switches to the next group.
405 partial modifier_keys
406 xkb_symbols "rctrl_toggle" {
407 virtual_modifiers AltGr;
409 symbols[Group1] = [ ISO_Next_Group ],
414 // Pressing Alt+Caps_Lock switches to the next group,
415 // pressing Caps_Lock toggles CapsLock.
416 partial modifier_keys
417 xkb_symbols "alt_caps_toggle" {
419 type="PC_ALT_LEVEL2",
420 symbols[Group1] = [ Caps_Lock, ISO_Next_Group ]
424 hidden partial modifier_keys
426 key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] };
429 partial modifier_keys
430 xkb_symbols "alt_space_toggle" {
432 type[Group1]="PC_ALT_LEVEL2",
433 symbols[Group1] = [ space, ISO_Next_Group ]
437 // Pressing the Scroll Lock key switches to the next group,
438 partial modifier_keys
439 xkb_symbols "sclk_toggle" {
440 virtual_modifiers AltGr;
443 symbols[Group1] = [ ISO_Next_Group ]
447 // Control_L+Win_L selects the first group (presumably Lat),
448 // Control_R+Menu selects the second group (presumably Rus).
449 partial modifier_keys
450 xkb_symbols "lctrl_lwin_rctrl_menu" {
452 type[Group1] = "PC_CONTROL_LEVEL2",
453 symbols[Group1] = [ Super_L, ISO_First_Group ]
456 type[Group1] = "PC_CONTROL_LEVEL2",
457 symbols[Group1] = [ Menu, ISO_Last_Group ]
461 // Control_L+Win_L toggles groups.
462 partial modifier_keys
463 xkb_symbols "lctrl_lwin_toggle" {
465 type[ Group1 ] = "PC_CONTROL_LEVEL2",
466 symbols[ Group1 ] = [ Super_L, ISO_Next_Group ]