group revision 1.1.1.4 1 1.1 mrg // using the group(switch) map, the right alt key temporarily chooses
2 1.1 mrg // the second keyboard group (until it is released).
3 1.1 mrg //
4 1.1 mrg partial modifier_keys
5 1.1 mrg xkb_symbols "switch" {
6 1.1 mrg key <RALT> {
7 1.1 mrg symbols[Group1]= [ Mode_switch, Multi_key ],
8 1.1 mrg virtualMods= AltGr
9 1.1 mrg };
10 1.1 mrg };
11 1.1 mrg
12 1.1 mrg // using the group(lswitch) map, the left alt key temporarily chooses
13 1.1 mrg // the second keyboard group (until it is released).
14 1.1 mrg //
15 1.1 mrg partial modifier_keys
16 1.1 mrg xkb_symbols "lswitch" {
17 1.1 mrg key <LALT> {
18 1.1 mrg symbols[Group1]= [ Mode_switch, Multi_key ],
19 1.1 mrg virtualMods= AltGr
20 1.1 mrg };
21 1.1 mrg };
22 1.1 mrg
23 1.1 mrg
24 1.1 mrg // using the group(win_switch) map, both Windows'logo keys temporarily
25 1.1 mrg // choose the second keyboard group (until release). If you use this
26 1.1 mrg // map, you would declare you keyboard as pc101 or pc102 instead of
27 1.1 mrg // pc104 or pc105.
28 1.1 mrg partial modifier_keys
29 1.1 mrg xkb_symbols "win_switch" {
30 1.1.1.2 mrg include "group(lwin_switch)"
31 1.1.1.2 mrg include "group(rwin_switch)"
32 1.1 mrg };
33 1.1 mrg
34 1.1 mrg // using the group(lwin_switch) map, the left Windows' logo key
35 1.1 mrg // temporarily chooses the second keyboard group (until it is
36 1.1 mrg // released). If you use this map, you would declare you keyboard as
37 1.1 mrg // pc101 or pc102 instead of pc104 or pc105.
38 1.1 mrg partial modifier_keys
39 1.1 mrg xkb_symbols "lwin_switch" {
40 1.1 mrg key <LWIN> {
41 1.1 mrg symbols[Group1] = [ Mode_switch, Multi_key ],
42 1.1 mrg virtualMods= AltGr
43 1.1 mrg };
44 1.1 mrg };
45 1.1 mrg
46 1.1 mrg // using the group(rwin_switch) map, the right Windows' logo key
47 1.1 mrg // temporarily chooses the second keyboard group (until it is
48 1.1 mrg // released). If you use this map, you would declare you keyboard as
49 1.1 mrg // pc101 or pc102 instead of pc104 or pc105.
50 1.1 mrg partial modifier_keys
51 1.1 mrg xkb_symbols "rwin_switch" {
52 1.1 mrg key <RWIN> {
53 1.1 mrg symbols[Group1] = [ Mode_switch, Multi_key ],
54 1.1 mrg virtualMods= AltGr
55 1.1 mrg };
56 1.1 mrg };
57 1.1 mrg
58 1.1 mrg // Right Ctrl key temporary chooses the second keyboard group.
59 1.1 mrg // Needed mainly for Canadian keyboard
60 1.1 mrg partial modifier_keys
61 1.1 mrg xkb_symbols "rctrl_switch" {
62 1.1 mrg key <RCTL> {
63 1.1 mrg symbols[Group1]= [ Mode_switch ]
64 1.1 mrg };
65 1.1 mrg };
66 1.1 mrg
67 1.1 mrg // using the group(toggle) map, pressing the right alt key switches to
68 1.1 mrg // the next sequential group (until the next explicit group change).
69 1.1 mrg partial modifier_keys
70 1.1 mrg xkb_symbols "toggle" {
71 1.1 mrg virtual_modifiers AltGr;
72 1.1 mrg key <RALT> {
73 1.1 mrg symbols[Group1]= [ ISO_Next_Group ],
74 1.1 mrg virtualMods= AltGr
75 1.1 mrg };
76 1.1 mrg };
77 1.1 mrg
78 1.1 mrg // using the group(shifts_toggle) map, pressing both shift keys together
79 1.1 mrg // locks the next or previous sequential keyboard group
80 1.1 mrg // (depending on which shift is pressed first - right or left,
81 1.1 mrg // correspongingly)
82 1.1 mrg partial modifier_keys
83 1.1 mrg xkb_symbols "shifts_toggle" {
84 1.1 mrg key <LFSH> { [ Shift_L, ISO_Prev_Group ] };
85 1.1 mrg key <RTSH> { [ Shift_R, ISO_Next_Group ] };
86 1.1 mrg };
87 1.1 mrg
88 1.1 mrg // using the group(ctrl_shift_toggle) map, pressing:
89 1.1 mrg // Control_L+Shift_L locks the previous group
90 1.1 mrg // Control_R+Shift_R locks the next group
91 1.1 mrg // If you have two groups and group wrap is enabled, the effect is
92 1.1 mrg // indistinguishable.
93 1.1 mrg partial modifier_keys
94 1.1 mrg xkb_symbols "ctrl_shift_toggle" {
95 1.1 mrg key <LFSH> {
96 1.1 mrg type[Group1]="PC_CONTROL_LEVEL2",
97 1.1 mrg symbols[Group1]= [ Shift_L, ISO_Prev_Group ]
98 1.1 mrg };
99 1.1 mrg key <RTSH> {
100 1.1 mrg type[Group1]="PC_CONTROL_LEVEL2",
101 1.1 mrg symbols[Group1]= [ Shift_R, ISO_Next_Group ]
102 1.1 mrg };
103 1.1 mrg key <LCTL> { [ Control_L, ISO_Prev_Group ] };
104 1.1 mrg key <RCTL> { [ Control_R, ISO_Next_Group ] };
105 1.1 mrg };
106 1.1 mrg
107 1.1 mrg // using the group(lctrl_lshift_toggle) map, pressing:
108 1.1 mrg // Control_L+Shift_L locks the next group
109 1.1 mrg // If you have two groups and group wrap is enabled, the effect is
110 1.1 mrg // indistinguishable.
111 1.1 mrg partial modifier_keys
112 1.1 mrg xkb_symbols "lctrl_lshift_toggle" {
113 1.1 mrg key <LFSH> {
114 1.1 mrg type[Group1]="PC_CONTROL_LEVEL2",
115 1.1 mrg symbols[Group1]= [ Shift_L, ISO_Next_Group ]
116 1.1 mrg };
117 1.1 mrg key <LCTL> { [ Control_L, ISO_Next_Group ] };
118 1.1 mrg };
119 1.1 mrg
120 1.1.1.3 ghen // using the group(rctrl_rshift_toggle) map, pressing:
121 1.1.1.3 ghen // Control_R+Shift_R locks the next group
122 1.1.1.3 ghen // If you have two groups and group wrap is enabled, the effect is
123 1.1.1.3 ghen // indistinguishable.
124 1.1.1.3 ghen partial modifier_keys
125 1.1.1.3 ghen xkb_symbols "rctrl_rshift_toggle" {
126 1.1.1.3 ghen key <RTSH> {
127 1.1.1.3 ghen type[Group1]="PC_CONTROL_LEVEL2",
128 1.1.1.3 ghen symbols[Group1]= [ Shift_R, ISO_Next_Group ]
129 1.1.1.3 ghen };
130 1.1.1.3 ghen key <RCTL> { [ Control_R, ISO_Next_Group ] };
131 1.1.1.3 ghen };
132 1.1.1.3 ghen
133 1.1 mrg // using the group(shift_caps_toggle) map, pressing:
134 1.1 mrg // Shift+Caps Lock toggles group
135 1.1 mrg partial modifier_keys
136 1.1 mrg xkb_symbols "shift_caps_toggle" {
137 1.1 mrg key <CAPS> { [ Caps_Lock, ISO_Next_Group ] };
138 1.1 mrg };
139 1.1 mrg
140 1.1 mrg // using the group(shift_caps_switch) map, pressing:
141 1.1 mrg // Caps Lock selects the first group
142 1.1 mrg // Shift+Caps Lock selects the last group
143 1.1 mrg partial modifier_keys
144 1.1 mrg xkb_symbols "shift_caps_switch" {
145 1.1 mrg key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] };
146 1.1 mrg };
147 1.1 mrg
148 1.1.1.3 ghen // using the group(win_menu_switch) map, pressing:
149 1.1.1.3 ghen // LWIN selects the first group
150 1.1.1.3 ghen // RWIN or MENU selects the last group
151 1.1.1.3 ghen partial modifier_keys
152 1.1.1.3 ghen xkb_symbols "win_menu_switch" {
153 1.1.1.3 ghen virtual_modifiers AltGr;
154 1.1.1.3 ghen key <LWIN> {
155 1.1.1.3 ghen virtualMods= AltGr,
156 1.1.1.3 ghen symbols[Group1] = [ ISO_First_Group ]
157 1.1.1.3 ghen };
158 1.1.1.3 ghen key <MENU> {
159 1.1.1.3 ghen virtualMods= AltGr,
160 1.1.1.3 ghen symbols[Group1] = [ ISO_Last_Group ]
161 1.1.1.3 ghen };
162 1.1.1.3 ghen key <RWIN> {
163 1.1.1.3 ghen virtualMods= AltGr,
164 1.1.1.3 ghen symbols[Group1] = [ ISO_Last_Group ]
165 1.1.1.3 ghen };
166 1.1.1.3 ghen };
167 1.1.1.3 ghen
168 1.1.1.3 ghen // using the group(lctrl_rctrl_switch) map, pressing:
169 1.1.1.3 ghen // Left Control selects the first group
170 1.1.1.3 ghen // Right Control selects the last group
171 1.1.1.3 ghen partial modifier_keys
172 1.1.1.3 ghen xkb_symbols "lctrl_rctrl_switch" {
173 1.1.1.3 ghen virtual_modifiers AltGr;
174 1.1.1.3 ghen key <LCTL> {
175 1.1.1.3 ghen virtualMods= AltGr,
176 1.1.1.3 ghen symbols[Group1] = [ ISO_First_Group ]
177 1.1.1.3 ghen };
178 1.1.1.3 ghen key <RCTL> {
179 1.1.1.3 ghen virtualMods= AltGr,
180 1.1.1.3 ghen symbols[Group1] = [ ISO_Last_Group ]
181 1.1.1.3 ghen };
182 1.1.1.3 ghen };
183 1.1.1.3 ghen
184 1.1 mrg // using the group(ctrl_alt_toggle) map, pressing:
185 1.1 mrg // Control_L+Alt_L locks the previous group
186 1.1 mrg // Control_R+Alt_R locks the next group
187 1.1 mrg // If you have two groups and group wrap is enabled, the effect is
188 1.1 mrg // indistinguishable.
189 1.1 mrg partial modifier_keys
190 1.1 mrg xkb_symbols "ctrl_alt_toggle" {
191 1.1 mrg virtual_modifiers Alt;
192 1.1 mrg key <LALT> {
193 1.1 mrg type[Group1]="PC_CONTROL_LEVEL2",
194 1.1 mrg symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
195 1.1 mrg virtualMods= Alt
196 1.1 mrg };
197 1.1 mrg key <RALT> {
198 1.1 mrg type[Group1]="PC_CONTROL_LEVEL2",
199 1.1 mrg symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
200 1.1 mrg virtualMods= Alt
201 1.1 mrg };
202 1.1 mrg key <LCTL> {
203 1.1 mrg type[Group1]="PC_ALT_LEVEL2",
204 1.1 mrg symbols[Group1]= [ Control_L, ISO_Prev_Group ]
205 1.1 mrg };
206 1.1 mrg key <RCTL> {
207 1.1 mrg type[Group1]="PC_ALT_LEVEL2",
208 1.1 mrg symbols[Group1]= [ Control_R, ISO_Next_Group ]
209 1.1 mrg };
210 1.1 mrg };
211 1.1 mrg
212 1.1 mrg // using the group(alt_shift_toggle) map, pressing:
213 1.1 mrg // Shift_L+Alt_L locks the previous group
214 1.1 mrg // Shift_R+Alt_R locks the next group
215 1.1 mrg // If you have two groups and group wrap is enabled, the effect is
216 1.1 mrg // indistinguishable.
217 1.1 mrg partial modifier_keys
218 1.1 mrg xkb_symbols "alt_shift_toggle" {
219 1.1 mrg virtual_modifiers Alt;
220 1.1 mrg key <LALT> {
221 1.1 mrg symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
222 1.1 mrg virtualMods= Alt
223 1.1 mrg };
224 1.1 mrg key <RALT> {
225 1.1 mrg symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
226 1.1 mrg virtualMods= Alt
227 1.1 mrg };
228 1.1 mrg key <LFSH> {
229 1.1 mrg type[Group1]="PC_ALT_LEVEL2",
230 1.1 mrg symbols[Group1]= [ Shift_L, ISO_Prev_Group ]
231 1.1 mrg };
232 1.1 mrg key <RTSH> {
233 1.1 mrg type[Group1]="PC_ALT_LEVEL2",
234 1.1 mrg symbols[Group1]= [ Shift_R, ISO_Next_Group ]
235 1.1 mrg };
236 1.1 mrg };
237 1.1 mrg
238 1.1 mrg // using the group(menu_toggle) map, pressing:
239 1.1 mrg // Menu key toggles groups
240 1.1 mrg // Shift+Menu acts as Menu
241 1.1 mrg partial modifier_keys
242 1.1 mrg xkb_symbols "menu_toggle" {
243 1.1 mrg key <MENU> { [ ISO_Next_Group, Menu ] };
244 1.1 mrg };
245 1.1 mrg
246 1.1 mrg // using the group(lwin_toggle) map, pressing the left Windows' logo key
247 1.1 mrg // toggles groups. If you use this map, you would declare you keyboard
248 1.1 mrg // as pc101 or pc102 instead of pc104 or pc105.
249 1.1 mrg partial modifier_keys
250 1.1 mrg xkb_symbols "lwin_toggle" {
251 1.1 mrg virtual_modifiers AltGr;
252 1.1 mrg key <LWIN> {
253 1.1 mrg virtualMods= AltGr,
254 1.1 mrg symbols[Group1] = [ ISO_Next_Group ]
255 1.1 mrg };
256 1.1 mrg };
257 1.1 mrg
258 1.1 mrg // using the group(rwin_toggle) map, pressing the right Windows' logo key
259 1.1 mrg // toggles groups. If you use this map, you would declare you keyboard
260 1.1 mrg // as pc101 or pc102 instead of pc104 or pc105.
261 1.1 mrg partial modifier_keys
262 1.1 mrg xkb_symbols "rwin_toggle" {
263 1.1 mrg virtual_modifiers AltGr;
264 1.1 mrg key <RWIN> {
265 1.1 mrg virtualMods= AltGr,
266 1.1 mrg symbols[Group1] = [ ISO_Next_Group ]
267 1.1 mrg };
268 1.1 mrg };
269 1.1 mrg
270 1.1 mrg // Both Ctrls pressed together toggle group
271 1.1 mrg partial modifier_keys
272 1.1 mrg xkb_symbols "ctrls_toggle" {
273 1.1 mrg virtual_modifiers LControl, RControl;
274 1.1 mrg key <LCTL> {
275 1.1 mrg type[Group1]="PC_RCONTROL_LEVEL2",
276 1.1 mrg symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
277 1.1 mrg virtualMods= LControl
278 1.1 mrg };
279 1.1 mrg key <RCTL> {
280 1.1 mrg type[Group1]="PC_LCONTROL_LEVEL2",
281 1.1 mrg symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
282 1.1 mrg virtualMods= RControl
283 1.1 mrg };
284 1.1 mrg };
285 1.1 mrg
286 1.1 mrg // Both Alts pressed together toggle group
287 1.1 mrg partial modifier_keys
288 1.1 mrg xkb_symbols "alts_toggle" {
289 1.1 mrg virtual_modifiers LAlt, RAlt;
290 1.1 mrg key <LALT> {
291 1.1 mrg type[Group1]="PC_RALT_LEVEL2",
292 1.1 mrg symbols[Group1]= [ NoSymbol, ISO_Prev_Group ],
293 1.1 mrg virtualMods= LAlt
294 1.1 mrg };
295 1.1 mrg key <RALT> {
296 1.1 mrg type[Group1]="PC_LALT_LEVEL2",
297 1.1 mrg symbols[Group1]= [ NoSymbol, ISO_Next_Group ],
298 1.1 mrg virtualMods= RAlt
299 1.1 mrg };
300 1.1 mrg };
301 1.1 mrg
302 1.1 mrg // Left Shift key toggles group
303 1.1 mrg partial modifier_keys
304 1.1 mrg xkb_symbols "lshift_toggle" {
305 1.1 mrg virtual_modifiers AltGr;
306 1.1 mrg key <LFSH> {
307 1.1 mrg symbols[Group1]= [ ISO_Next_Group ],
308 1.1 mrg virtualMods= AltGr
309 1.1 mrg };
310 1.1 mrg };
311 1.1 mrg
312 1.1 mrg // Right Shift key toggles group
313 1.1 mrg partial modifier_keys
314 1.1 mrg xkb_symbols "rshift_toggle" {
315 1.1 mrg virtual_modifiers AltGr;
316 1.1 mrg key <RTSH> {
317 1.1 mrg symbols[Group1]= [ ISO_Next_Group ],
318 1.1 mrg virtualMods= AltGr
319 1.1 mrg };
320 1.1 mrg };
321 1.1 mrg
322 1.1 mrg // Left Alt key toggles group
323 1.1 mrg partial modifier_keys
324 1.1 mrg xkb_symbols "lalt_toggle" {
325 1.1 mrg virtual_modifiers AltGr;
326 1.1 mrg key <LALT> {
327 1.1 mrg symbols[Group1]= [ ISO_Next_Group ],
328 1.1 mrg virtualMods= AltGr
329 1.1 mrg };
330 1.1 mrg };
331 1.1 mrg
332 1.1 mrg // Left Ctrl key toggles group
333 1.1 mrg partial modifier_keys
334 1.1 mrg xkb_symbols "lctrl_toggle" {
335 1.1 mrg virtual_modifiers AltGr;
336 1.1 mrg key <LCTL> {
337 1.1 mrg symbols[Group1]= [ ISO_Next_Group ],
338 1.1 mrg virtualMods= AltGr
339 1.1 mrg };
340 1.1 mrg };
341 1.1 mrg
342 1.1 mrg // Right Ctrl key toggles group
343 1.1 mrg partial modifier_keys
344 1.1 mrg xkb_symbols "rctrl_toggle" {
345 1.1 mrg virtual_modifiers AltGr;
346 1.1 mrg key <RCTL> {
347 1.1 mrg symbols[Group1]= [ ISO_Next_Group ],
348 1.1 mrg virtualMods= AltGr
349 1.1 mrg };
350 1.1 mrg };
351 1.1 mrg
352 1.1 mrg // using the group(alt_caps_toggle) map, pressing:
353 1.1 mrg // Alt+Caps Lock toggles group
354 1.1 mrg // Caps Lock toggles caps lock
355 1.1 mrg partial modifier_keys
356 1.1 mrg xkb_symbols "alt_caps_toggle" {
357 1.1 mrg key <CAPS> {
358 1.1 mrg type="PC_ALT_LEVEL2",
359 1.1 mrg symbols[Group1]= [ Caps_Lock, ISO_Next_Group]
360 1.1 mrg };
361 1.1 mrg };
362 1.1 mrg
363 1.1 mrg partial hidden modifier_keys
364 1.1 mrg xkb_symbols "olpc" {
365 1.1 mrg key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] };
366 1.1 mrg };
367 1.1 mrg
368 1.1.1.3 ghen partial modifier_keys
369 1.1.1.3 ghen xkb_symbols "alt_space_toggle" {
370 1.1.1.3 ghen key <SPCE> {
371 1.1.1.3 ghen type[Group1]="PC_ALT_LEVEL2",
372 1.1.1.3 ghen symbols[Group1]= [ space, ISO_Next_Group ]
373 1.1.1.3 ghen };
374 1.1.1.3 ghen };
375 1.1.1.3 ghen
376 1.1.1.3 ghen // using the group(sclk_toggle) map, pressing the Scroll Lock key
377 1.1.1.3 ghen // toggles groups.
378 1.1.1.3 ghen partial modifier_keys
379 1.1.1.3 ghen xkb_symbols "sclk_toggle" {
380 1.1.1.3 ghen virtual_modifiers AltGr;
381 1.1.1.3 ghen key <SCLK> {
382 1.1.1.3 ghen virtualMods= AltGr,
383 1.1.1.3 ghen symbols[Group1] = [ ISO_Next_Group ]
384 1.1.1.3 ghen };
385 1.1.1.3 ghen };
386 1.1.1.3 ghen
387 1.1.1.4 mrg // Control_L+Win_L locks the first group (presumably Lat).
388 1.1.1.4 mrg // Control_R+Menu locks the second group (presumably Rus).
389 1.1.1.4 mrg partial modifier_keys
390 1.1.1.4 mrg xkb_symbols "lctrl_lwin_rctrl_menu" {
391 1.1.1.4 mrg key <LWIN> {
392 1.1.1.4 mrg type[ Group1 ] = "PC_CONTROL_LEVEL2",
393 1.1.1.4 mrg symbols[ Group1 ] = [ Super_L, ISO_First_Group ]
394 1.1.1.4 mrg };
395 1.1.1.4 mrg key <MENU> {
396 1.1.1.4 mrg type[ Group1 ] = "PC_CONTROL_LEVEL2",
397 1.1.1.4 mrg symbols[ Group1 ] = [ Menu, ISO_Last_Group ]
398 1.1.1.4 mrg };
399 1.1.1.4 mrg }; // lctrl_lwin_rctrl_menu
400