group revision 1.1.1.11 1 // The right Alt key (while pressed) chooses the second keyboard group.
2 partial modifier_keys
3 xkb_symbols "switch" {
4 key <RALT> {
5 symbols[Group1] = [ Mode_switch, Multi_key ],
6 virtualMods= AltGr
7 };
8 };
9
10 // The left Alt key (while pressed) chooses the second keyboard group.
11 partial modifier_keys
12 xkb_symbols "lswitch" {
13 key <LALT> {
14 symbols[Group1] = [ Mode_switch, Multi_key ],
15 virtualMods= AltGr
16 };
17 };
18
19 // Either Win key (while pressed) chooses the second keyboard group.
20 partial modifier_keys
21 xkb_symbols "win_switch" {
22 include "group(lwin_switch)"
23 include "group(rwin_switch)"
24 };
25
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.)
29 partial modifier_keys
30 xkb_symbols "lwin_switch" {
31 key <LWIN> {
32 symbols[Group1] = [ Mode_switch, Multi_key ],
33 virtualMods= AltGr
34 };
35 };
36
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.)
40 partial modifier_keys
41 xkb_symbols "rwin_switch" {
42 key <RWIN> {
43 symbols[Group1] = [ Mode_switch, Multi_key ],
44 virtualMods= AltGr
45 };
46 };
47
48 // The right Menu key (while pressed) chooses the second keyboard group.
49 // while Shift+Menu acts as Menu.
50 partial modifier_keys
51 xkb_symbols "menu_switch" {
52 key <MENU> {
53 symbols[Group1] = [ Mode_switch, Menu ],
54 virtualMods= AltGr
55 };
56 };
57
58 // The right Ctrl key (while pressed) chooses the second keyboard group.
59 // (Needed mainly for the Canadian keyboard.)
60 partial modifier_keys
61 xkb_symbols "rctrl_switch" {
62 key <RCTL> {
63 symbols[Group1] = [ Mode_switch ]
64 };
65 };
66
67 // Pressing the right Alt key switches to the next group.
68 partial modifier_keys
69 xkb_symbols "toggle" {
70 virtual_modifiers AltGr;
71 key <RALT> {
72 symbols[Group1] = [ ISO_Next_Group ],
73 virtualMods= AltGr
74 };
75 };
76
77 // Pressing both Shift keys switches to the next or previous group
78 // (depending on which Shift is pressed first).
79 partial modifier_keys
80 xkb_symbols "shifts_toggle" {
81 key <LFSH> { [ Shift_L, ISO_Prev_Group ] };
82 key <RTSH> { [ Shift_R, ISO_Next_Group ] };
83 };
84
85 // Pressing Shift+Caps_Lock switches to the next group.
86 partial modifier_keys
87 xkb_symbols "shift_caps_toggle" {
88 key <CAPS> { [ Caps_Lock, ISO_Next_Group ] };
89 };
90
91 // Pressing Caps_Lock selects the first group,
92 // pressing Shift+Caps_Lock selects the last group.
93 partial modifier_keys
94 xkb_symbols "shift_caps_switch" {
95 key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] };
96 };
97
98 // toggle using win + space as combo
99 partial modifier_keys
100 xkb_symbols "win_space_toggle" {
101 key <SPCE> {
102 type="PC_SUPER_LEVEL2",
103 symbols[Group1]= [ space, ISO_Next_Group ],
104 symbols[Group2]= [ space, ISO_Next_Group ]
105 };
106 };
107
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;
113 key <LWIN> {
114 virtualMods= AltGr,
115 symbols[Group1] = [ ISO_First_Group ]
116 };
117 key <MENU> {
118 virtualMods= AltGr,
119 symbols[Group1] = [ ISO_Last_Group ]
120 };
121 key <RWIN> {
122 virtualMods= AltGr,
123 symbols[Group1] = [ ISO_Last_Group ]
124 };
125 };
126
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;
132 key <LCTL> {
133 virtualMods= AltGr,
134 symbols[Group1] = [ ISO_First_Group ]
135 };
136 key <RCTL> {
137 virtualMods= AltGr,
138 symbols[Group1] = [ ISO_Last_Group ]
139 };
140 };
141
142
143 //
144 // CTRL-SHIFT toggle section
145 //
146 partial modifier_keys
147 xkb_symbols "lctrl_lshift_toggle" {
148 key <LFSH> {
149 type[Group1]="PC_CONTROL_LEVEL2",
150 symbols[Group1] = [ Shift_L, ISO_Next_Group ]
151 };
152 key <LCTL> { [ Control_L, ISO_Next_Group ] };
153 };
154
155 partial modifier_keys
156 xkb_symbols "lctrl_lshift_toggle_rev" {
157 key <LFSH> {
158 type[Group1]="PC_CONTROL_LEVEL2",
159 symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
160 };
161 key <LCTL> { [ Control_L, ISO_Prev_Group ] };
162 };
163
164 partial modifier_keys
165 xkb_symbols "rctrl_rshift_toggle" {
166 key <RTSH> {
167 type[Group1]="PC_CONTROL_LEVEL2",
168 symbols[Group1] = [ Shift_R, ISO_Next_Group ]
169 };
170 key <RCTL> { [ Control_R, ISO_Next_Group ] };
171 };
172
173 partial modifier_keys
174 xkb_symbols "ctrl_shift_toggle" {
175 include "group(lctrl_lshift_toggle)"
176 include "group(rctrl_rshift_toggle)"
177 };
178
179 partial modifier_keys
180 xkb_symbols "ctrl_shift_toggle_bidir" {
181 include "group(lctrl_lshift_toggle_rev)"
182 include "group(rctrl_rshift_toggle)"
183 };
184
185
186 //
187 // CTRL-ALT toggle section
188 //
189 partial modifier_keys
190 xkb_symbols "lctrl_lalt_toggle" {
191 virtual_modifiers Alt;
192 key <LALT> {
193 type[Group1]="PC_CONTROL_LEVEL2",
194 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
195 virtualMods= Alt
196 };
197 key <LCTL> {
198 type[Group1]="PC_ALT_LEVEL2",
199 symbols[Group1] = [ Control_L, ISO_Next_Group ]
200 };
201 };
202
203 partial modifier_keys
204 xkb_symbols "lctrl_lalt_toggle_rev" {
205 virtual_modifiers Alt;
206 key <LALT> {
207 type[Group1]="PC_CONTROL_LEVEL2",
208 symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
209 virtualMods= Alt
210 };
211 key <LCTL> {
212 type[Group1]="PC_ALT_LEVEL2",
213 symbols[Group1] = [ Control_L, ISO_Prev_Group ]
214 };
215 };
216
217 partial modifier_keys
218 xkb_symbols "rctrl_ralt_toggle" {
219 virtual_modifiers Alt;
220 key <RALT> {
221 type[Group1]="PC_CONTROL_LEVEL2",
222 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
223 virtualMods= Alt
224 };
225 key <RCTL> {
226 type[Group1]="PC_ALT_LEVEL2",
227 symbols[Group1] = [ Control_R, ISO_Next_Group ]
228 };
229 };
230
231 partial modifier_keys
232 xkb_symbols "ctrl_alt_toggle" {
233 include "group(lctrl_lalt_toggle)"
234 include "group(rctrl_ralt_toggle)"
235 };
236
237 partial modifier_keys
238 xkb_symbols "ctrl_alt_toggle_bidir" {
239 include "group(lctrl_lalt_toggle_rev)"
240 include "group(rctrl_ralt_toggle)"
241 };
242
243
244 //
245 // ALT-SHIFT toggle section
246 //
247 partial modifier_keys
248 xkb_symbols "lalt_lshift_toggle" {
249 virtual_modifiers Alt;
250 key <LALT> {
251 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
252 virtualMods= Alt
253 };
254 key <LFSH> {
255 type[Group1]="PC_ALT_LEVEL2",
256 symbols[Group1] = [ Shift_L, ISO_Next_Group ]
257 };
258 };
259
260 partial modifier_keys
261 xkb_symbols "lalt_lshift_toggle_rev" {
262 virtual_modifiers Alt;
263 key <LALT> {
264 symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
265 virtualMods= Alt
266 };
267 key <LFSH> {
268 type[Group1]="PC_ALT_LEVEL2",
269 symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
270 };
271 };
272
273 partial modifier_keys
274 xkb_symbols "ralt_rshift_toggle" {
275 virtual_modifiers Alt;
276 key <RALT> {
277 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
278 virtualMods= Alt
279 };
280 key <RTSH> {
281 type[Group1]="PC_ALT_LEVEL2",
282 symbols[Group1] = [ Shift_R, ISO_Next_Group ]
283 };
284 };
285
286 partial modifier_keys
287 xkb_symbols "alt_shift_toggle" {
288 include "group(lalt_lshift_toggle)"
289 include "group(ralt_rshift_toggle)"
290 };
291
292 partial modifier_keys
293 xkb_symbols "alt_shift_toggle_bidir" {
294 include "group(lalt_lshift_toggle_rev)"
295 include "group(ralt_rshift_toggle)"
296 };
297
298
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 ] };
304 };
305
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;
312 key <LWIN> {
313 virtualMods= AltGr,
314 symbols[Group1] = [ ISO_Next_Group ]
315 };
316 };
317
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;
324 key <RWIN> {
325 virtualMods= AltGr,
326 symbols[Group1] = [ ISO_Next_Group ]
327 };
328 };
329
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;
335 key <LCTL> {
336 type[Group1]="PC_CONTROL_LEVEL2",
337 symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
338 virtualMods= LControl
339 };
340 key <RCTL> {
341 type[Group1]="PC_CONTROL_LEVEL2",
342 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
343 virtualMods= RControl
344 };
345 };
346
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;
352 key <LALT> {
353 type[Group1]="PC_RALT_LEVEL2",
354 symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
355 virtualMods= LAlt
356 };
357 key <RALT> {
358 type[Group1]="PC_LALT_LEVEL2",
359 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
360 virtualMods= RAlt
361 };
362 };
363
364 // Pressing the left Shift key switches to the next group.
365 partial modifier_keys
366 xkb_symbols "lshift_toggle" {
367 virtual_modifiers AltGr;
368 key <LFSH> {
369 symbols[Group1] = [ ISO_Next_Group ],
370 virtualMods= AltGr
371 };
372 };
373
374 // Pressing the right Shift key switches to the next group.
375 partial modifier_keys
376 xkb_symbols "rshift_toggle" {
377 virtual_modifiers AltGr;
378 key <RTSH> {
379 symbols[Group1] = [ ISO_Next_Group ],
380 virtualMods= AltGr
381 };
382 };
383
384 // Pressing the left Alt key switches to the next group.
385 partial modifier_keys
386 xkb_symbols "lalt_toggle" {
387 virtual_modifiers AltGr;
388 key <LALT> {
389 symbols[Group1] = [ ISO_Next_Group ],
390 virtualMods= AltGr
391 };
392 };
393
394 // Pressing the left Ctrl key switches to the next group.
395 partial modifier_keys
396 xkb_symbols "lctrl_toggle" {
397 virtual_modifiers AltGr;
398 key <LCTL> {
399 symbols[Group1] = [ ISO_Next_Group ],
400 virtualMods= AltGr
401 };
402 };
403
404 // Pressing the right Ctrl key switches to the next group.
405 partial modifier_keys
406 xkb_symbols "rctrl_toggle" {
407 virtual_modifiers AltGr;
408 key <RCTL> {
409 symbols[Group1] = [ ISO_Next_Group ],
410 virtualMods= AltGr
411 };
412 };
413
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" {
418 key <CAPS> {
419 type="PC_ALT_LEVEL2",
420 symbols[Group1] = [ Caps_Lock, ISO_Next_Group ]
421 };
422 };
423
424 hidden partial modifier_keys
425 xkb_symbols "olpc" {
426 key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] };
427 };
428
429 partial modifier_keys
430 xkb_symbols "alt_space_toggle" {
431 key <SPCE> {
432 type[Group1]="PC_ALT_LEVEL2",
433 symbols[Group1] = [ space, ISO_Next_Group ]
434 };
435 };
436
437 // Pressing the Scroll Lock key switches to the next group,
438 partial modifier_keys
439 xkb_symbols "sclk_toggle" {
440 virtual_modifiers AltGr;
441 key <SCLK> {
442 virtualMods= AltGr,
443 symbols[Group1] = [ ISO_Next_Group ]
444 };
445 };
446
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" {
451 key <LWIN> {
452 type[Group1] = "PC_CONTROL_LEVEL2",
453 symbols[Group1] = [ Super_L, ISO_First_Group ]
454 };
455 key <MENU> {
456 type[Group1] = "PC_CONTROL_LEVEL2",
457 symbols[Group1] = [ Menu, ISO_Last_Group ]
458 };
459 };
460
461 // Control_L+Win_L toggles groups.
462 partial modifier_keys
463 xkb_symbols "lctrl_lwin_toggle" {
464 key <LWIN> {
465 type[ Group1 ] = "PC_CONTROL_LEVEL2",
466 symbols[ Group1 ] = [ Super_L, ISO_Next_Group ]
467 };
468 };
469
470