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