group revision 1.1.1.7 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 Ctrl key (while pressed) chooses the second keyboard group.
49 // (Needed mainly for the Canadian keyboard.)
50 partial modifier_keys
51 xkb_symbols "rctrl_switch" {
52 key <RCTL> {
53 symbols[Group1] = [ Mode_switch ]
54 };
55 };
56
57 // Pressing the right Alt key switches to the next group.
58 partial modifier_keys
59 xkb_symbols "toggle" {
60 virtual_modifiers AltGr;
61 key <RALT> {
62 symbols[Group1] = [ ISO_Next_Group ],
63 virtualMods= AltGr
64 };
65 };
66
67 // Pressing both Shift keys switches to the next or previous group
68 // (depending on which Shift is pressed first).
69 partial modifier_keys
70 xkb_symbols "shifts_toggle" {
71 key <LFSH> { [ Shift_L, ISO_Prev_Group ] };
72 key <RTSH> { [ Shift_R, ISO_Next_Group ] };
73 };
74
75 // Pressing Shift+Caps_Lock switches to the next group.
76 partial modifier_keys
77 xkb_symbols "shift_caps_toggle" {
78 key <CAPS> { [ Caps_Lock, ISO_Next_Group ] };
79 };
80
81 // Pressing Caps_Lock selects the first group,
82 // pressing Shift+Caps_Lock selects the last group.
83 partial modifier_keys
84 xkb_symbols "shift_caps_switch" {
85 key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] };
86 };
87
88 // toggle using win + space as combo
89 partial modifier_keys
90 xkb_symbols "win_space_toggle" {
91 key <SPCE> {
92 type[Group1]="PC_SUPER_LEVEL2",
93 symbols[Group1]= [ space, ISO_Next_Group ]
94 };
95 };
96
97 // Pressing the left Win key selects the first group,
98 // pressing the right Win or the Menu key selects the last group.
99 partial modifier_keys
100 xkb_symbols "win_menu_switch" {
101 virtual_modifiers AltGr;
102 key <LWIN> {
103 virtualMods= AltGr,
104 symbols[Group1] = [ ISO_First_Group ]
105 };
106 key <MENU> {
107 virtualMods= AltGr,
108 symbols[Group1] = [ ISO_Last_Group ]
109 };
110 key <RWIN> {
111 virtualMods= AltGr,
112 symbols[Group1] = [ ISO_Last_Group ]
113 };
114 };
115
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;
121 key <LCTL> {
122 virtualMods= AltGr,
123 symbols[Group1] = [ ISO_First_Group ]
124 };
125 key <RCTL> {
126 virtualMods= AltGr,
127 symbols[Group1] = [ ISO_Last_Group ]
128 };
129 };
130
131
132 //
133 // CTRL-SHIFT toggle section
134 //
135 partial modifier_keys
136 xkb_symbols "lctrl_lshift_toggle" {
137 key <LFSH> {
138 type[Group1]="PC_CONTROL_LEVEL2",
139 symbols[Group1] = [ Shift_L, ISO_Next_Group ]
140 };
141 key <LCTL> { [ Control_L, ISO_Next_Group ] };
142 };
143
144 partial modifier_keys
145 xkb_symbols "lctrl_lshift_toggle_rev" {
146 key <LFSH> {
147 type[Group1]="PC_CONTROL_LEVEL2",
148 symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
149 };
150 key <LCTL> { [ Control_L, ISO_Prev_Group ] };
151 };
152
153 partial modifier_keys
154 xkb_symbols "rctrl_rshift_toggle" {
155 key <RTSH> {
156 type[Group1]="PC_CONTROL_LEVEL2",
157 symbols[Group1] = [ Shift_R, ISO_Next_Group ]
158 };
159 key <RCTL> { [ Control_R, ISO_Next_Group ] };
160 };
161
162 partial modifier_keys
163 xkb_symbols "ctrl_shift_toggle" {
164 include "group(lctrl_lshift_toggle)"
165 include "group(rctrl_rshift_toggle)"
166 };
167
168 partial modifier_keys
169 xkb_symbols "ctrl_shift_toggle_bidir" {
170 include "group(lctrl_lshift_toggle_rev)"
171 include "group(rctrl_rshift_toggle)"
172 };
173
174
175 //
176 // CTRL-ALT toggle section
177 //
178 partial modifier_keys
179 xkb_symbols "lctrl_lalt_toggle" {
180 virtual_modifiers Alt;
181 key <LALT> {
182 type[Group1]="PC_CONTROL_LEVEL2",
183 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
184 virtualMods= Alt
185 };
186 key <LCTL> {
187 type[Group1]="PC_ALT_LEVEL2",
188 symbols[Group1] = [ Control_L, ISO_Next_Group ]
189 };
190 };
191
192 partial modifier_keys
193 xkb_symbols "lctrl_lalt_toggle_rev" {
194 virtual_modifiers Alt;
195 key <LALT> {
196 type[Group1]="PC_CONTROL_LEVEL2",
197 symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
198 virtualMods= Alt
199 };
200 key <LCTL> {
201 type[Group1]="PC_ALT_LEVEL2",
202 symbols[Group1] = [ Control_L, ISO_Prev_Group ]
203 };
204 };
205
206 partial modifier_keys
207 xkb_symbols "rctrl_ralt_toggle" {
208 virtual_modifiers Alt;
209 key <RALT> {
210 type[Group1]="PC_CONTROL_LEVEL2",
211 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
212 virtualMods= Alt
213 };
214 key <RCTL> {
215 type[Group1]="PC_ALT_LEVEL2",
216 symbols[Group1] = [ Control_R, ISO_Next_Group ]
217 };
218 };
219
220 partial modifier_keys
221 xkb_symbols "ctrl_alt_toggle" {
222 include "group(lctrl_lalt_toggle)"
223 include "group(rctrl_ralt_toggle)"
224 };
225
226 partial modifier_keys
227 xkb_symbols "ctrl_alt_toggle_bidir" {
228 include "group(lctrl_lalt_toggle_rev)"
229 include "group(rctrl_ralt_toggle)"
230 };
231
232
233 //
234 // ALT-SHIFT toggle section
235 //
236 partial modifier_keys
237 xkb_symbols "lalt_lshift_toggle" {
238 virtual_modifiers Alt;
239 key <LALT> {
240 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
241 virtualMods= Alt
242 };
243 key <LFSH> {
244 type[Group1]="PC_ALT_LEVEL2",
245 symbols[Group1] = [ Shift_L, ISO_Next_Group ]
246 };
247 };
248
249 partial modifier_keys
250 xkb_symbols "lalt_lshift_toggle_rev" {
251 virtual_modifiers Alt;
252 key <LALT> {
253 symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
254 virtualMods= Alt
255 };
256 key <LFSH> {
257 type[Group1]="PC_ALT_LEVEL2",
258 symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
259 };
260 };
261
262 partial modifier_keys
263 xkb_symbols "ralt_rshift_toggle" {
264 virtual_modifiers Alt;
265 key <RALT> {
266 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
267 virtualMods= Alt
268 };
269 key <RTSH> {
270 type[Group1]="PC_ALT_LEVEL2",
271 symbols[Group1] = [ Shift_R, ISO_Next_Group ]
272 };
273 };
274
275 partial modifier_keys
276 xkb_symbols "alt_shift_toggle" {
277 include "group(lalt_lshift_toggle)"
278 include "group(ralt_rshift_toggle)"
279 };
280
281 partial modifier_keys
282 xkb_symbols "alt_shift_toggle_bidir" {
283 include "group(lalt_lshift_toggle_rev)"
284 include "group(ralt_rshift_toggle)"
285 };
286
287
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 ] };
293 };
294
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;
301 key <LWIN> {
302 virtualMods= AltGr,
303 symbols[Group1] = [ ISO_Next_Group ]
304 };
305 };
306
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;
313 key <RWIN> {
314 virtualMods= AltGr,
315 symbols[Group1] = [ ISO_Next_Group ]
316 };
317 };
318
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;
324 key <LCTL> {
325 type[Group1]="PC_RCONTROL_LEVEL2",
326 symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
327 virtualMods= LControl
328 };
329 key <RCTL> {
330 type[Group1]="PC_LCONTROL_LEVEL2",
331 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
332 virtualMods= RControl
333 };
334 };
335
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;
341 key <LALT> {
342 type[Group1]="PC_RALT_LEVEL2",
343 symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
344 virtualMods= LAlt
345 };
346 key <RALT> {
347 type[Group1]="PC_LALT_LEVEL2",
348 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
349 virtualMods= RAlt
350 };
351 };
352
353 // Pressing the left Shift key switches to the next group.
354 partial modifier_keys
355 xkb_symbols "lshift_toggle" {
356 virtual_modifiers AltGr;
357 key <LFSH> {
358 symbols[Group1] = [ ISO_Next_Group ],
359 virtualMods= AltGr
360 };
361 };
362
363 // Pressing the right Shift key switches to the next group.
364 partial modifier_keys
365 xkb_symbols "rshift_toggle" {
366 virtual_modifiers AltGr;
367 key <RTSH> {
368 symbols[Group1] = [ ISO_Next_Group ],
369 virtualMods= AltGr
370 };
371 };
372
373 // Pressing the left Alt key switches to the next group.
374 partial modifier_keys
375 xkb_symbols "lalt_toggle" {
376 virtual_modifiers AltGr;
377 key <LALT> {
378 symbols[Group1] = [ ISO_Next_Group ],
379 virtualMods= AltGr
380 };
381 };
382
383 // Pressing the left Ctrl key switches to the next group.
384 partial modifier_keys
385 xkb_symbols "lctrl_toggle" {
386 virtual_modifiers AltGr;
387 key <LCTL> {
388 symbols[Group1] = [ ISO_Next_Group ],
389 virtualMods= AltGr
390 };
391 };
392
393 // Pressing the right Ctrl key switches to the next group.
394 partial modifier_keys
395 xkb_symbols "rctrl_toggle" {
396 virtual_modifiers AltGr;
397 key <RCTL> {
398 symbols[Group1] = [ ISO_Next_Group ],
399 virtualMods= AltGr
400 };
401 };
402
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" {
407 key <CAPS> {
408 type="PC_ALT_LEVEL2",
409 symbols[Group1] = [ Caps_Lock, ISO_Next_Group ]
410 };
411 };
412
413 partial hidden modifier_keys
414 xkb_symbols "olpc" {
415 key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] };
416 };
417
418 partial modifier_keys
419 xkb_symbols "alt_space_toggle" {
420 key <SPCE> {
421 type[Group1]="PC_ALT_LEVEL2",
422 symbols[Group1] = [ space, ISO_Next_Group ]
423 };
424 };
425
426 // Pressing the Scroll Lock key switches to the next group,
427 partial modifier_keys
428 xkb_symbols "sclk_toggle" {
429 virtual_modifiers AltGr;
430 key <SCLK> {
431 virtualMods= AltGr,
432 symbols[Group1] = [ ISO_Next_Group ]
433 };
434 };
435
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" {
440 key <LWIN> {
441 type[Group1] = "PC_CONTROL_LEVEL2",
442 symbols[Group1] = [ Super_L, ISO_First_Group ]
443 };
444 key <MENU> {
445 type[Group1] = "PC_CONTROL_LEVEL2",
446 symbols[Group1] = [ Menu, ISO_Last_Group ]
447 };
448 };
449