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 Ctrl key (while pressed) chooses the second keyboard group.
49 // (Needed mainly for the Canadian keyboard.)
51 xkb_symbols "rctrl_switch" {
53 symbols[Group1] = [ Mode_switch ]
57 // Pressing the right Alt key switches to the next group.
59 xkb_symbols "toggle" {
60 virtual_modifiers AltGr;
62 symbols[Group1] = [ ISO_Next_Group ],
67 // Pressing both Shift keys switches to the next or previous group
68 // (depending on which Shift is pressed first).
70 xkb_symbols "shifts_toggle" {
71 key <LFSH> { [ Shift_L, ISO_Prev_Group ] };
72 key <RTSH> { [ Shift_R, ISO_Next_Group ] };
75 // Pressing Shift+Caps_Lock switches to the next group.
77 xkb_symbols "shift_caps_toggle" {
78 key <CAPS> { [ Caps_Lock, ISO_Next_Group ] };
81 // Pressing Caps_Lock selects the first group,
82 // pressing Shift+Caps_Lock selects the last group.
84 xkb_symbols "shift_caps_switch" {
85 key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] };
88 // toggle using win + space as combo
90 xkb_symbols "win_space_toggle" {
92 type[Group1]="PC_SUPER_LEVEL2",
93 symbols[Group1]= [ space, ISO_Next_Group ]
97 // Pressing the left Win key selects the first group,
98 // pressing the right Win or the Menu key selects the last group.
100 xkb_symbols "win_menu_switch" {
101 virtual_modifiers AltGr;
104 symbols[Group1] = [ ISO_First_Group ]
108 symbols[Group1] = [ ISO_Last_Group ]
112 symbols[Group1] = [ ISO_Last_Group ]
116 // Pressing the left Ctrl key selects the first group,
117 // pressing the right Ctrl key selects the last group.
118 partial modifier_keys
119 xkb_symbols "lctrl_rctrl_switch" {
120 virtual_modifiers AltGr;
123 symbols[Group1] = [ ISO_First_Group ]
127 symbols[Group1] = [ ISO_Last_Group ]
133 // CTRL-SHIFT toggle section
135 partial modifier_keys
136 xkb_symbols "lctrl_lshift_toggle" {
138 type[Group1]="PC_CONTROL_LEVEL2",
139 symbols[Group1] = [ Shift_L, ISO_Next_Group ]
141 key <LCTL> { [ Control_L, ISO_Next_Group ] };
144 partial modifier_keys
145 xkb_symbols "lctrl_lshift_toggle_rev" {
147 type[Group1]="PC_CONTROL_LEVEL2",
148 symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
150 key <LCTL> { [ Control_L, ISO_Prev_Group ] };
153 partial modifier_keys
154 xkb_symbols "rctrl_rshift_toggle" {
156 type[Group1]="PC_CONTROL_LEVEL2",
157 symbols[Group1] = [ Shift_R, ISO_Next_Group ]
159 key <RCTL> { [ Control_R, ISO_Next_Group ] };
162 partial modifier_keys
163 xkb_symbols "ctrl_shift_toggle" {
164 include "group(lctrl_lshift_toggle)"
165 include "group(rctrl_rshift_toggle)"
168 partial modifier_keys
169 xkb_symbols "ctrl_shift_toggle_bidir" {
170 include "group(lctrl_lshift_toggle_rev)"
171 include "group(rctrl_rshift_toggle)"
176 // CTRL-ALT toggle section
178 partial modifier_keys
179 xkb_symbols "lctrl_lalt_toggle" {
180 virtual_modifiers Alt;
182 type[Group1]="PC_CONTROL_LEVEL2",
183 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
187 type[Group1]="PC_ALT_LEVEL2",
188 symbols[Group1] = [ Control_L, ISO_Next_Group ]
192 partial modifier_keys
193 xkb_symbols "lctrl_lalt_toggle_rev" {
194 virtual_modifiers Alt;
196 type[Group1]="PC_CONTROL_LEVEL2",
197 symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
201 type[Group1]="PC_ALT_LEVEL2",
202 symbols[Group1] = [ Control_L, ISO_Prev_Group ]
206 partial modifier_keys
207 xkb_symbols "rctrl_ralt_toggle" {
208 virtual_modifiers Alt;
210 type[Group1]="PC_CONTROL_LEVEL2",
211 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
215 type[Group1]="PC_ALT_LEVEL2",
216 symbols[Group1] = [ Control_R, ISO_Next_Group ]
220 partial modifier_keys
221 xkb_symbols "ctrl_alt_toggle" {
222 include "group(lctrl_lalt_toggle)"
223 include "group(rctrl_ralt_toggle)"
226 partial modifier_keys
227 xkb_symbols "ctrl_alt_toggle_bidir" {
228 include "group(lctrl_lalt_toggle_rev)"
229 include "group(rctrl_ralt_toggle)"
234 // ALT-SHIFT toggle section
236 partial modifier_keys
237 xkb_symbols "lalt_lshift_toggle" {
238 virtual_modifiers Alt;
240 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
244 type[Group1]="PC_ALT_LEVEL2",
245 symbols[Group1] = [ Shift_L, ISO_Next_Group ]
249 partial modifier_keys
250 xkb_symbols "lalt_lshift_toggle_rev" {
251 virtual_modifiers Alt;
253 symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
257 type[Group1]="PC_ALT_LEVEL2",
258 symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
262 partial modifier_keys
263 xkb_symbols "ralt_rshift_toggle" {
264 virtual_modifiers Alt;
266 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
270 type[Group1]="PC_ALT_LEVEL2",
271 symbols[Group1] = [ Shift_R, ISO_Next_Group ]
275 partial modifier_keys
276 xkb_symbols "alt_shift_toggle" {
277 include "group(lalt_lshift_toggle)"
278 include "group(ralt_rshift_toggle)"
281 partial modifier_keys
282 xkb_symbols "alt_shift_toggle_bidir" {
283 include "group(lalt_lshift_toggle_rev)"
284 include "group(ralt_rshift_toggle)"
288 // Pressing the Menu key switches to the next group,
289 // while Shift+Menu acts as Menu.
290 partial modifier_keys
291 xkb_symbols "menu_toggle" {
292 key <MENU> { [ ISO_Next_Group, Menu ] };
295 // Pressing the left Win key switches to the next group.
296 // (Using this map, you should declare your keyboard as
297 // pc101 or pc102 instead of pc104 or pc105.)
298 partial modifier_keys
299 xkb_symbols "lwin_toggle" {
300 virtual_modifiers AltGr;
303 symbols[Group1] = [ ISO_Next_Group ]
307 // Pressing the right Win key switches to the next group.
308 // (Using this map, you should declare your keyboard as
309 // pc101 or pc102 instead of pc104 or pc105.)
310 partial modifier_keys
311 xkb_symbols "rwin_toggle" {
312 virtual_modifiers AltGr;
315 symbols[Group1] = [ ISO_Next_Group ]
319 // Pressing both Ctrl keys switches to the next or previous group
320 // (depending on which Ctrl is pressed first).
321 partial modifier_keys
322 xkb_symbols "ctrls_toggle" {
323 virtual_modifiers LControl, RControl;
325 type[Group1]="PC_RCONTROL_LEVEL2",
326 symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
327 virtualMods= LControl
330 type[Group1]="PC_LCONTROL_LEVEL2",
331 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
332 virtualMods= RControl
336 // Pressing both Alt keys switches to the next or previous group
337 // (depending on which Alt is pressed first).
338 partial modifier_keys
339 xkb_symbols "alts_toggle" {
340 virtual_modifiers LAlt, RAlt;
342 type[Group1]="PC_RALT_LEVEL2",
343 symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
347 type[Group1]="PC_LALT_LEVEL2",
348 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
353 // Pressing the left Shift key switches to the next group.
354 partial modifier_keys
355 xkb_symbols "lshift_toggle" {
356 virtual_modifiers AltGr;
358 symbols[Group1] = [ ISO_Next_Group ],
363 // Pressing the right Shift key switches to the next group.
364 partial modifier_keys
365 xkb_symbols "rshift_toggle" {
366 virtual_modifiers AltGr;
368 symbols[Group1] = [ ISO_Next_Group ],
373 // Pressing the left Alt key switches to the next group.
374 partial modifier_keys
375 xkb_symbols "lalt_toggle" {
376 virtual_modifiers AltGr;
378 symbols[Group1] = [ ISO_Next_Group ],
383 // Pressing the left Ctrl key switches to the next group.
384 partial modifier_keys
385 xkb_symbols "lctrl_toggle" {
386 virtual_modifiers AltGr;
388 symbols[Group1] = [ ISO_Next_Group ],
393 // Pressing the right Ctrl key switches to the next group.
394 partial modifier_keys
395 xkb_symbols "rctrl_toggle" {
396 virtual_modifiers AltGr;
398 symbols[Group1] = [ ISO_Next_Group ],
403 // Pressing Alt+Caps_Lock switches to the next group,
404 // pressing Caps_Lock toggles CapsLock.
405 partial modifier_keys
406 xkb_symbols "alt_caps_toggle" {
408 type="PC_ALT_LEVEL2",
409 symbols[Group1] = [ Caps_Lock, ISO_Next_Group ]
413 hidden partial modifier_keys
415 key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] };
418 partial modifier_keys
419 xkb_symbols "alt_space_toggle" {
421 type[Group1]="PC_ALT_LEVEL2",
422 symbols[Group1] = [ space, ISO_Next_Group ]
426 // Pressing the Scroll Lock key switches to the next group,
427 partial modifier_keys
428 xkb_symbols "sclk_toggle" {
429 virtual_modifiers AltGr;
432 symbols[Group1] = [ ISO_Next_Group ]
436 // Control_L+Win_L selects the first group (presumably Lat),
437 // Control_R+Menu selects the second group (presumably Rus).
438 partial modifier_keys
439 xkb_symbols "lctrl_lwin_rctrl_menu" {
441 type[Group1] = "PC_CONTROL_LEVEL2",
442 symbols[Group1] = [ Super_L, ISO_First_Group ]
445 type[Group1] = "PC_CONTROL_LEVEL2",
446 symbols[Group1] = [ Menu, ISO_Last_Group ]