group revision 1.1.1.6 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 // Pressing the left Win key selects the first group,
89 // pressing the right Win or the Menu key selects the last group.
90 partial modifier_keys
91 xkb_symbols "win_menu_switch" {
92 virtual_modifiers AltGr;
93 key <LWIN> {
94 virtualMods= AltGr,
95 symbols[Group1] = [ ISO_First_Group ]
96 };
97 key <MENU> {
98 virtualMods= AltGr,
99 symbols[Group1] = [ ISO_Last_Group ]
100 };
101 key <RWIN> {
102 virtualMods= AltGr,
103 symbols[Group1] = [ ISO_Last_Group ]
104 };
105 };
106
107 // Pressing the left Ctrl key selects the first group,
108 // pressing the right Ctrl key selects the last group.
109 partial modifier_keys
110 xkb_symbols "lctrl_rctrl_switch" {
111 virtual_modifiers AltGr;
112 key <LCTL> {
113 virtualMods= AltGr,
114 symbols[Group1] = [ ISO_First_Group ]
115 };
116 key <RCTL> {
117 virtualMods= AltGr,
118 symbols[Group1] = [ ISO_Last_Group ]
119 };
120 };
121
122
123 //
124 // CTRL-SHIFT toggle section
125 //
126 partial modifier_keys
127 xkb_symbols "lctrl_lshift_toggle" {
128 key <LFSH> {
129 type[Group1]="PC_CONTROL_LEVEL2",
130 symbols[Group1] = [ Shift_L, ISO_Next_Group ]
131 };
132 key <LCTL> { [ Control_L, ISO_Next_Group ] };
133 };
134
135 partial modifier_keys
136 xkb_symbols "lctrl_lshift_toggle_rev" {
137 key <LFSH> {
138 type[Group1]="PC_CONTROL_LEVEL2",
139 symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
140 };
141 key <LCTL> { [ Control_L, ISO_Prev_Group ] };
142 };
143
144 partial modifier_keys
145 xkb_symbols "rctrl_rshift_toggle" {
146 key <RTSH> {
147 type[Group1]="PC_CONTROL_LEVEL2",
148 symbols[Group1] = [ Shift_R, ISO_Next_Group ]
149 };
150 key <RCTL> { [ Control_R, ISO_Next_Group ] };
151 };
152
153 partial modifier_keys
154 xkb_symbols "ctrl_shift_toggle" {
155 include "group(lctrl_lshift_toggle)"
156 include "group(rctrl_rshift_toggle)"
157 };
158
159 partial modifier_keys
160 xkb_symbols "ctrl_shift_toggle_bidir" {
161 include "group(lctrl_lshift_toggle_rev)"
162 include "group(rctrl_rshift_toggle)"
163 };
164
165
166 //
167 // CTRL-ALT toggle section
168 //
169 partial modifier_keys
170 xkb_symbols "lctrl_lalt_toggle" {
171 virtual_modifiers Alt;
172 key <LALT> {
173 type[Group1]="PC_CONTROL_LEVEL2",
174 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
175 virtualMods= Alt
176 };
177 key <LCTL> {
178 type[Group1]="PC_ALT_LEVEL2",
179 symbols[Group1] = [ Control_L, ISO_Next_Group ]
180 };
181 };
182
183 partial modifier_keys
184 xkb_symbols "lctrl_lalt_toggle_rev" {
185 virtual_modifiers Alt;
186 key <LALT> {
187 type[Group1]="PC_CONTROL_LEVEL2",
188 symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
189 virtualMods= Alt
190 };
191 key <LCTL> {
192 type[Group1]="PC_ALT_LEVEL2",
193 symbols[Group1] = [ Control_L, ISO_Prev_Group ]
194 };
195 };
196
197 partial modifier_keys
198 xkb_symbols "rctrl_ralt_toggle" {
199 virtual_modifiers Alt;
200 key <RALT> {
201 type[Group1]="PC_CONTROL_LEVEL2",
202 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
203 virtualMods= Alt
204 };
205 key <RCTL> {
206 type[Group1]="PC_ALT_LEVEL2",
207 symbols[Group1] = [ Control_R, ISO_Next_Group ]
208 };
209 };
210
211 partial modifier_keys
212 xkb_symbols "ctrl_alt_toggle" {
213 include "group(lctrl_lalt_toggle)"
214 include "group(rctrl_ralt_toggle)"
215 };
216
217 partial modifier_keys
218 xkb_symbols "ctrl_alt_toggle_bidir" {
219 include "group(lctrl_lalt_toggle_rev)"
220 include "group(rctrl_ralt_toggle)"
221 };
222
223
224 //
225 // ALT-SHIFT toggle section
226 //
227 partial modifier_keys
228 xkb_symbols "lalt_lshift_toggle" {
229 virtual_modifiers Alt;
230 key <LALT> {
231 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
232 virtualMods= Alt
233 };
234 key <LFSH> {
235 type[Group1]="PC_ALT_LEVEL2",
236 symbols[Group1] = [ Shift_L, ISO_Next_Group ]
237 };
238 };
239
240 partial modifier_keys
241 xkb_symbols "lalt_lshift_toggle_rev" {
242 virtual_modifiers Alt;
243 key <LALT> {
244 symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
245 virtualMods= Alt
246 };
247 key <LFSH> {
248 type[Group1]="PC_ALT_LEVEL2",
249 symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
250 };
251 };
252
253 partial modifier_keys
254 xkb_symbols "ralt_rshift_toggle" {
255 virtual_modifiers Alt;
256 key <RALT> {
257 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
258 virtualMods= Alt
259 };
260 key <RTSH> {
261 type[Group1]="PC_ALT_LEVEL2",
262 symbols[Group1] = [ Shift_R, ISO_Next_Group ]
263 };
264 };
265
266 partial modifier_keys
267 xkb_symbols "alt_shift_toggle" {
268 include "group(lalt_lshift_toggle)"
269 include "group(ralt_rshift_toggle)"
270 };
271
272 partial modifier_keys
273 xkb_symbols "alt_shift_toggle_bidir" {
274 include "group(lalt_lshift_toggle_rev)"
275 include "group(ralt_rshift_toggle)"
276 };
277
278
279 // Pressing the Menu key switches to the next group,
280 // while Shift+Menu acts as Menu.
281 partial modifier_keys
282 xkb_symbols "menu_toggle" {
283 key <MENU> { [ ISO_Next_Group, Menu ] };
284 };
285
286 // Pressing the left Win key switches to the next group.
287 // (Using this map, you should declare your keyboard as
288 // pc101 or pc102 instead of pc104 or pc105.)
289 partial modifier_keys
290 xkb_symbols "lwin_toggle" {
291 virtual_modifiers AltGr;
292 key <LWIN> {
293 virtualMods= AltGr,
294 symbols[Group1] = [ ISO_Next_Group ]
295 };
296 };
297
298 // Pressing the right Win key switches to the next group.
299 // (Using this map, you should declare your keyboard as
300 // pc101 or pc102 instead of pc104 or pc105.)
301 partial modifier_keys
302 xkb_symbols "rwin_toggle" {
303 virtual_modifiers AltGr;
304 key <RWIN> {
305 virtualMods= AltGr,
306 symbols[Group1] = [ ISO_Next_Group ]
307 };
308 };
309
310 // Pressing both Ctrl keys switches to the next or previous group
311 // (depending on which Ctrl is pressed first).
312 partial modifier_keys
313 xkb_symbols "ctrls_toggle" {
314 virtual_modifiers LControl, RControl;
315 key <LCTL> {
316 type[Group1]="PC_RCONTROL_LEVEL2",
317 symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
318 virtualMods= LControl
319 };
320 key <RCTL> {
321 type[Group1]="PC_LCONTROL_LEVEL2",
322 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
323 virtualMods= RControl
324 };
325 };
326
327 // Pressing both Alt keys switches to the next or previous group
328 // (depending on which Alt is pressed first).
329 partial modifier_keys
330 xkb_symbols "alts_toggle" {
331 virtual_modifiers LAlt, RAlt;
332 key <LALT> {
333 type[Group1]="PC_RALT_LEVEL2",
334 symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
335 virtualMods= LAlt
336 };
337 key <RALT> {
338 type[Group1]="PC_LALT_LEVEL2",
339 symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
340 virtualMods= RAlt
341 };
342 };
343
344 // Pressing the left Shift key switches to the next group.
345 partial modifier_keys
346 xkb_symbols "lshift_toggle" {
347 virtual_modifiers AltGr;
348 key <LFSH> {
349 symbols[Group1] = [ ISO_Next_Group ],
350 virtualMods= AltGr
351 };
352 };
353
354 // Pressing the right Shift key switches to the next group.
355 partial modifier_keys
356 xkb_symbols "rshift_toggle" {
357 virtual_modifiers AltGr;
358 key <RTSH> {
359 symbols[Group1] = [ ISO_Next_Group ],
360 virtualMods= AltGr
361 };
362 };
363
364 // Pressing the left Alt key switches to the next group.
365 partial modifier_keys
366 xkb_symbols "lalt_toggle" {
367 virtual_modifiers AltGr;
368 key <LALT> {
369 symbols[Group1] = [ ISO_Next_Group ],
370 virtualMods= AltGr
371 };
372 };
373
374 // Pressing the left Ctrl key switches to the next group.
375 partial modifier_keys
376 xkb_symbols "lctrl_toggle" {
377 virtual_modifiers AltGr;
378 key <LCTL> {
379 symbols[Group1] = [ ISO_Next_Group ],
380 virtualMods= AltGr
381 };
382 };
383
384 // Pressing the right Ctrl key switches to the next group.
385 partial modifier_keys
386 xkb_symbols "rctrl_toggle" {
387 virtual_modifiers AltGr;
388 key <RCTL> {
389 symbols[Group1] = [ ISO_Next_Group ],
390 virtualMods= AltGr
391 };
392 };
393
394 // Pressing Alt+Caps_Lock switches to the next group,
395 // pressing Caps_Lock toggles CapsLock.
396 partial modifier_keys
397 xkb_symbols "alt_caps_toggle" {
398 key <CAPS> {
399 type="PC_ALT_LEVEL2",
400 symbols[Group1] = [ Caps_Lock, ISO_Next_Group ]
401 };
402 };
403
404 partial hidden modifier_keys
405 xkb_symbols "olpc" {
406 key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] };
407 };
408
409 partial modifier_keys
410 xkb_symbols "alt_space_toggle" {
411 key <SPCE> {
412 type[Group1]="PC_ALT_LEVEL2",
413 symbols[Group1] = [ space, ISO_Next_Group ]
414 };
415 };
416
417 // Pressing the Scroll Lock key switches to the next group,
418 partial modifier_keys
419 xkb_symbols "sclk_toggle" {
420 virtual_modifiers AltGr;
421 key <SCLK> {
422 virtualMods= AltGr,
423 symbols[Group1] = [ ISO_Next_Group ]
424 };
425 };
426
427 // Control_L+Win_L selects the first group (presumably Lat),
428 // Control_R+Menu selects the second group (presumably Rus).
429 partial modifier_keys
430 xkb_symbols "lctrl_lwin_rctrl_menu" {
431 key <LWIN> {
432 type[Group1] = "PC_CONTROL_LEVEL2",
433 symbols[Group1] = [ Super_L, ISO_First_Group ]
434 };
435 key <MENU> {
436 type[Group1] = "PC_CONTROL_LEVEL2",
437 symbols[Group1] = [ Menu, ISO_Last_Group ]
438 };
439 };
440