1 // using the group(switch) map, the right alt key temporarily chooses
2 // the second keyboard group (until it is released).
7 symbols[Group1]= [ Mode_switch, Multi_key ],
12 // using the group(lswitch) map, the left alt key temporarily chooses
13 // the second keyboard group (until it is released).
16 xkb_symbols "lswitch" {
18 symbols[Group1]= [ Mode_switch, Multi_key ],
24 // using the group(win_switch) map, both Windows'logo keys temporarily
25 // choose the second keyboard group (until release). If you use this
26 // map, you would declare you keyboard as pc101 or pc102 instead of
29 xkb_symbols "win_switch" {
30 include "group(lwin_switch)"
31 include "group(rwin_switch)"
34 // using the group(lwin_switch) map, the left Windows' logo key
35 // temporarily chooses the second keyboard group (until it is
36 // released). If you use this map, you would declare you keyboard as
37 // pc101 or pc102 instead of pc104 or pc105.
39 xkb_symbols "lwin_switch" {
41 symbols[Group1] = [ Mode_switch, Multi_key ],
46 // using the group(rwin_switch) map, the right Windows' logo key
47 // temporarily chooses the second keyboard group (until it is
48 // released). If you use this map, you would declare you keyboard as
49 // pc101 or pc102 instead of pc104 or pc105.
51 xkb_symbols "rwin_switch" {
53 symbols[Group1] = [ Mode_switch, Multi_key ],
58 // Right Ctrl key temporary chooses the second keyboard group.
59 // Needed mainly for Canadian keyboard
61 xkb_symbols "rctrl_switch" {
63 symbols[Group1]= [ Mode_switch ]
67 // using the group(toggle) map, pressing the right alt key switches to
68 // the next sequential group (until the next explicit group change).
70 xkb_symbols "toggle" {
71 virtual_modifiers AltGr;
73 symbols[Group1]= [ ISO_Next_Group ],
78 // using the group(shifts_toggle) map, pressing both shift keys together
79 // locks the next or previous sequential keyboard group
80 // (depending on which shift is pressed first - right or left,
83 xkb_symbols "shifts_toggle" {
84 key <LFSH> { [ Shift_L, ISO_Prev_Group ] };
85 key <RTSH> { [ Shift_R, ISO_Next_Group ] };
88 // using the group(shift_caps_toggle) map, pressing:
89 // Shift+Caps Lock toggles group
91 xkb_symbols "shift_caps_toggle" {
92 key <CAPS> { [ Caps_Lock, ISO_Next_Group ] };
95 // using the group(shift_caps_switch) map, pressing:
96 // Caps Lock selects the first group
97 // Shift+Caps Lock selects the last group
99 xkb_symbols "shift_caps_switch" {
100 key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] };
103 // using the group(win_menu_switch) map, pressing:
104 // LWIN selects the first group
105 // RWIN or MENU selects the last group
106 partial modifier_keys
107 xkb_symbols "win_menu_switch" {
108 virtual_modifiers AltGr;
111 symbols[Group1] = [ ISO_First_Group ]
115 symbols[Group1] = [ ISO_Last_Group ]
119 symbols[Group1] = [ ISO_Last_Group ]
123 // using the group(lctrl_rctrl_switch) map, pressing:
124 // Left Control selects the first group
125 // Right Control selects the last group
126 partial modifier_keys
127 xkb_symbols "lctrl_rctrl_switch" {
128 virtual_modifiers AltGr;
131 symbols[Group1] = [ ISO_First_Group ]
135 symbols[Group1] = [ ISO_Last_Group ]
141 // CTRL-SHIFT toggle section
143 partial modifier_keys
144 xkb_symbols "lctrl_lshift_toggle" {
146 type[Group1]="PC_CONTROL_LEVEL2",
147 symbols[Group1]= [ Shift_L, ISO_Next_Group ]
149 key <LCTL> { [ Control_L, ISO_Next_Group ] };
152 partial modifier_keys
153 xkb_symbols "lctrl_lshift_toggle_rev" {
155 type[Group1]="PC_CONTROL_LEVEL2",
156 symbols[Group1]= [ Shift_L, ISO_Prev_Group ]
158 key <LCTL> { [ Control_L, ISO_Prev_Group ] };
161 partial modifier_keys
162 xkb_symbols "rctrl_rshift_toggle" {
164 type[Group1]="PC_CONTROL_LEVEL2",
165 symbols[Group1]= [ Shift_R, ISO_Next_Group ]
167 key <RCTL> { [ Control_R, ISO_Next_Group ] };
170 partial modifier_keys
171 xkb_symbols "ctrl_shift_toggle" {
172 include "group(lctrl_lshift_toggle)"
173 include "group(rctrl_rshift_toggle)"
176 partial modifier_keys
177 xkb_symbols "ctrl_shift_toggle_bidir" {
178 include "group(lctrl_lshift_toggle_rev)"
179 include "group(rctrl_rshift_toggle)"
184 // CTRL-ALT toggle section
186 partial modifier_keys
187 xkb_symbols "lctrl_lalt_toggle" {
188 virtual_modifiers Alt;
190 type[Group1]="PC_CONTROL_LEVEL2",
191 symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
195 type[Group1]="PC_ALT_LEVEL2",
196 symbols[Group1]= [ Control_L, ISO_Next_Group ]
200 partial modifier_keys
201 xkb_symbols "lctrl_lalt_toggle_rev" {
202 virtual_modifiers Alt;
204 type[Group1]="PC_CONTROL_LEVEL2",
205 symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
209 type[Group1]="PC_ALT_LEVEL2",
210 symbols[Group1]= [ Control_L, ISO_Prev_Group ]
214 partial modifier_keys
215 xkb_symbols "rctrl_ralt_toggle" {
216 virtual_modifiers Alt;
218 type[Group1]="PC_CONTROL_LEVEL2",
219 symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
223 type[Group1]="PC_ALT_LEVEL2",
224 symbols[Group1]= [ Control_R, ISO_Next_Group ]
228 partial modifier_keys
229 xkb_symbols "ctrl_alt_toggle" {
230 include "group(lctrl_lalt_toggle)"
231 include "group(rctrl_ralt_toggle)"
234 partial modifier_keys
235 xkb_symbols "ctrl_alt_toggle_bidir" {
236 include "group(lctrl_lalt_toggle_rev)"
237 include "group(rctrl_ralt_toggle)"
242 // ALT-SHIFT toggle section
244 partial modifier_keys
245 xkb_symbols "lalt_lshift_toggle" {
246 virtual_modifiers Alt;
248 symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
252 type[Group1]="PC_ALT_LEVEL2",
253 symbols[Group1]= [ Shift_L, ISO_Next_Group ]
257 partial modifier_keys
258 xkb_symbols "lalt_lshift_toggle_rev" {
259 virtual_modifiers Alt;
261 symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
265 type[Group1]="PC_ALT_LEVEL2",
266 symbols[Group1]= [ Shift_L, ISO_Prev_Group ]
270 partial modifier_keys
271 xkb_symbols "ralt_rshift_toggle" {
272 virtual_modifiers Alt;
274 symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
278 type[Group1]="PC_ALT_LEVEL2",
279 symbols[Group1]= [ Shift_R, ISO_Next_Group ]
283 partial modifier_keys
284 xkb_symbols "alt_shift_toggle" {
285 include "group(lalt_lshift_toggle)"
286 include "group(ralt_rshift_toggle)"
289 partial modifier_keys
290 xkb_symbols "alt_shift_toggle_bidir" {
291 include "group(lalt_lshift_toggle_rev)"
292 include "group(ralt_rshift_toggle)"
296 // using the group(menu_toggle) map, pressing:
297 // Menu key toggles groups
298 // Shift+Menu acts as Menu
299 partial modifier_keys
300 xkb_symbols "menu_toggle" {
301 key <MENU> { [ ISO_Next_Group, Menu ] };
304 // using the group(lwin_toggle) map, pressing the left Windows' logo key
305 // toggles groups. If you use this map, you would declare you keyboard
306 // as pc101 or pc102 instead of pc104 or pc105.
307 partial modifier_keys
308 xkb_symbols "lwin_toggle" {
309 virtual_modifiers AltGr;
312 symbols[Group1] = [ ISO_Next_Group ]
316 // using the group(rwin_toggle) map, pressing the right Windows' logo key
317 // toggles groups. If you use this map, you would declare you keyboard
318 // as pc101 or pc102 instead of pc104 or pc105.
319 partial modifier_keys
320 xkb_symbols "rwin_toggle" {
321 virtual_modifiers AltGr;
324 symbols[Group1] = [ ISO_Next_Group ]
328 // Both Ctrls pressed together toggle group
329 partial modifier_keys
330 xkb_symbols "ctrls_toggle" {
331 virtual_modifiers LControl, RControl;
333 type[Group1]="PC_RCONTROL_LEVEL2",
334 symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
335 virtualMods= LControl
338 type[Group1]="PC_LCONTROL_LEVEL2",
339 symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
340 virtualMods= RControl
344 // Both Alts pressed together toggle group
345 partial modifier_keys
346 xkb_symbols "alts_toggle" {
347 virtual_modifiers LAlt, RAlt;
349 type[Group1]="PC_RALT_LEVEL2",
350 symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
354 type[Group1]="PC_LALT_LEVEL2",
355 symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
360 // Left Shift key toggles group
361 partial modifier_keys
362 xkb_symbols "lshift_toggle" {
363 virtual_modifiers AltGr;
365 symbols[Group1]= [ ISO_Next_Group ],
370 // Right Shift key toggles group
371 partial modifier_keys
372 xkb_symbols "rshift_toggle" {
373 virtual_modifiers AltGr;
375 symbols[Group1]= [ ISO_Next_Group ],
380 // Left Alt key toggles group
381 partial modifier_keys
382 xkb_symbols "lalt_toggle" {
383 virtual_modifiers AltGr;
385 symbols[Group1]= [ ISO_Next_Group ],
390 // Left Ctrl key toggles group
391 partial modifier_keys
392 xkb_symbols "lctrl_toggle" {
393 virtual_modifiers AltGr;
395 symbols[Group1]= [ ISO_Next_Group ],
400 // Right Ctrl key toggles group
401 partial modifier_keys
402 xkb_symbols "rctrl_toggle" {
403 virtual_modifiers AltGr;
405 symbols[Group1]= [ ISO_Next_Group ],
410 // using the group(alt_caps_toggle) map, pressing:
411 // Alt+Caps Lock toggles group
412 // Caps Lock toggles caps lock
413 partial modifier_keys
414 xkb_symbols "alt_caps_toggle" {
416 type="PC_ALT_LEVEL2",
417 symbols[Group1]= [ Caps_Lock, ISO_Next_Group]
421 partial hidden modifier_keys
423 key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] };
426 partial modifier_keys
427 xkb_symbols "alt_space_toggle" {
429 type[Group1]="PC_ALT_LEVEL2",
430 symbols[Group1]= [ space, ISO_Next_Group ]
434 // using the group(sclk_toggle) map, pressing the Scroll Lock key
436 partial modifier_keys
437 xkb_symbols "sclk_toggle" {
438 virtual_modifiers AltGr;
441 symbols[Group1] = [ ISO_Next_Group ]
445 // Control_L+Win_L locks the first group (presumably Lat).
446 // Control_R+Menu locks the second group (presumably Rus).
447 partial modifier_keys
448 xkb_symbols "lctrl_lwin_rctrl_menu" {
450 type[ Group1 ] = "PC_CONTROL_LEVEL2",
451 symbols[ Group1 ] = [ Super_L, ISO_First_Group ]
454 type[ Group1 ] = "PC_CONTROL_LEVEL2",
455 symbols[ Group1 ] = [ Menu, ISO_Last_Group ]
457 }; // lctrl_lwin_rctrl_menu