group revision 797b363d
1797b363dSmrg// The right Alt key (while pressed) chooses the second keyboard group.
2797b363dSmrgpartial modifier_keys
3154daed1Smrgxkb_symbols "switch" {
4797b363dSmrg    key <RALT> {
5797b363dSmrg        symbols[Group1] = [ Mode_switch, Multi_key ],
6797b363dSmrg        virtualMods= AltGr
7154daed1Smrg    };
8154daed1Smrg};
9154daed1Smrg
10797b363dSmrg// The left Alt key (while pressed) chooses the second keyboard group.
11797b363dSmrgpartial modifier_keys
12154daed1Smrgxkb_symbols "lswitch" {
13797b363dSmrg    key <LALT> {
14797b363dSmrg        symbols[Group1] = [ Mode_switch, Multi_key ],
15797b363dSmrg        virtualMods= AltGr
16154daed1Smrg    };
17154daed1Smrg};
18154daed1Smrg
19797b363dSmrg// Either Win key (while pressed) chooses the second keyboard group.
20154daed1Smrgpartial modifier_keys
21154daed1Smrgxkb_symbols "win_switch" {
225a35480eSmrg    include "group(lwin_switch)"
235a35480eSmrg    include "group(rwin_switch)"
24154daed1Smrg};
25154daed1Smrg
26797b363dSmrg// The left Win key (while pressed) chooses the second keyboard group.
27797b363dSmrg// (Using this map, you should declare your keyboard as pc101 or pc102
28797b363dSmrg// instead of pc104 or pc105.)
29154daed1Smrgpartial modifier_keys
30154daed1Smrgxkb_symbols "lwin_switch" {
31797b363dSmrg    key <LWIN> {
32797b363dSmrg        symbols[Group1] = [ Mode_switch, Multi_key ],
33797b363dSmrg        virtualMods= AltGr
34154daed1Smrg    };
35154daed1Smrg};
36154daed1Smrg
37797b363dSmrg// The right Win key (while pressed) chooses the second keyboard group.
38797b363dSmrg// (Using this map, you should declare your keyboard as pc101 or pc102
39797b363dSmrg// instead of pc104 or pc105.)
40154daed1Smrgpartial modifier_keys
41154daed1Smrgxkb_symbols "rwin_switch" {
42797b363dSmrg    key <RWIN> {
43797b363dSmrg        symbols[Group1] = [ Mode_switch, Multi_key ],
44797b363dSmrg        virtualMods= AltGr
45154daed1Smrg    };
46154daed1Smrg};
47154daed1Smrg
48797b363dSmrg// The right Ctrl key (while pressed) chooses the second keyboard group.
49797b363dSmrg// (Needed mainly for the Canadian keyboard.)
50154daed1Smrgpartial modifier_keys
51154daed1Smrgxkb_symbols "rctrl_switch" {
52797b363dSmrg    key <RCTL> {
53797b363dSmrg        symbols[Group1] = [ Mode_switch ]
54154daed1Smrg    };
55154daed1Smrg};
56154daed1Smrg
57797b363dSmrg// Pressing the right Alt key switches to the next group.
58797b363dSmrgpartial modifier_keys
59154daed1Smrgxkb_symbols "toggle" {
60154daed1Smrg    virtual_modifiers AltGr;
61797b363dSmrg    key <RALT> {
62797b363dSmrg        symbols[Group1] = [ ISO_Next_Group ],
63797b363dSmrg        virtualMods= AltGr
64154daed1Smrg    };
65154daed1Smrg};
66154daed1Smrg
67797b363dSmrg// Pressing both Shift keys switches to the next or previous group
68797b363dSmrg// (depending on which Shift is pressed first).
69797b363dSmrgpartial modifier_keys
70154daed1Smrgxkb_symbols "shifts_toggle" {
71797b363dSmrg    key <LFSH> { [ Shift_L, ISO_Prev_Group ] };
72797b363dSmrg    key <RTSH> { [ Shift_R, ISO_Next_Group ] };
73154daed1Smrg};
74154daed1Smrg
75797b363dSmrg// Pressing Shift+Caps_Lock switches to the next group.
76154daed1Smrgpartial modifier_keys
77154daed1Smrgxkb_symbols "shift_caps_toggle" {
78797b363dSmrg    key <CAPS> { [ Caps_Lock, ISO_Next_Group ] };
79154daed1Smrg};
80154daed1Smrg
81797b363dSmrg// Pressing Caps_Lock selects the first group,
82797b363dSmrg// pressing Shift+Caps_Lock selects the last group.
83154daed1Smrgpartial modifier_keys
84154daed1Smrgxkb_symbols "shift_caps_switch" {
85154daed1Smrg    key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] };
86154daed1Smrg};
87154daed1Smrg
88797b363dSmrg// Pressing the left Win key selects the first group,
89797b363dSmrg// pressing the right Win or the Menu key selects the last group.
90c067fea9Sghenpartial modifier_keys
91c067fea9Sghenxkb_symbols "win_menu_switch" {
92c067fea9Sghen    virtual_modifiers AltGr;
93c067fea9Sghen    key <LWIN> {
94c067fea9Sghen        virtualMods= AltGr,
95c067fea9Sghen        symbols[Group1] = [ ISO_First_Group ]
96c067fea9Sghen    };
97c067fea9Sghen    key <MENU> {
98c067fea9Sghen        virtualMods= AltGr,
99c067fea9Sghen        symbols[Group1] = [ ISO_Last_Group ]
100c067fea9Sghen    };
101c067fea9Sghen    key <RWIN> {
102c067fea9Sghen        virtualMods= AltGr,
103c067fea9Sghen        symbols[Group1] = [ ISO_Last_Group ]
104c067fea9Sghen    };
105c067fea9Sghen};
106c067fea9Sghen
107797b363dSmrg// Pressing the left Ctrl key selects the first group,
108797b363dSmrg// pressing the right Ctrl key selects the last group.
109c067fea9Sghenpartial modifier_keys
110c067fea9Sghenxkb_symbols "lctrl_rctrl_switch" {
111c067fea9Sghen    virtual_modifiers AltGr;
112c067fea9Sghen    key <LCTL> {
113c067fea9Sghen        virtualMods= AltGr,
114c067fea9Sghen        symbols[Group1] = [ ISO_First_Group ]
115c067fea9Sghen    };
116c067fea9Sghen    key <RCTL> {
117c067fea9Sghen        virtualMods= AltGr,
118c067fea9Sghen        symbols[Group1] = [ ISO_Last_Group ]
119c067fea9Sghen    };
120c067fea9Sghen};
121c067fea9Sghen
1220412cdedSmrg
1230412cdedSmrg//
1240412cdedSmrg// CTRL-SHIFT toggle section
1250412cdedSmrg//
126797b363dSmrgpartial modifier_keys
1270412cdedSmrgxkb_symbols "lctrl_lshift_toggle" {
1280412cdedSmrg    key <LFSH> {
1290412cdedSmrg        type[Group1]="PC_CONTROL_LEVEL2",
130797b363dSmrg        symbols[Group1] = [ Shift_L, ISO_Next_Group ]
1310412cdedSmrg    };
1320412cdedSmrg    key <LCTL> { [ Control_L, ISO_Next_Group ] };
1330412cdedSmrg};
1340412cdedSmrg
135797b363dSmrgpartial modifier_keys
1360412cdedSmrgxkb_symbols "lctrl_lshift_toggle_rev" {
1370412cdedSmrg    key <LFSH> {
1380412cdedSmrg        type[Group1]="PC_CONTROL_LEVEL2",
139797b363dSmrg        symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
1400412cdedSmrg    };
1410412cdedSmrg    key <LCTL> { [ Control_L, ISO_Prev_Group ] };
1420412cdedSmrg};
1430412cdedSmrg
1440412cdedSmrgpartial modifier_keys
1450412cdedSmrgxkb_symbols "rctrl_rshift_toggle" {
1460412cdedSmrg    key <RTSH> {
1470412cdedSmrg        type[Group1]="PC_CONTROL_LEVEL2",
148797b363dSmrg        symbols[Group1] = [ Shift_R, ISO_Next_Group ]
1490412cdedSmrg    };
1500412cdedSmrg    key <RCTL> { [ Control_R, ISO_Next_Group ] };
1510412cdedSmrg};
1520412cdedSmrg
153797b363dSmrgpartial modifier_keys
1540412cdedSmrgxkb_symbols "ctrl_shift_toggle" {
1550412cdedSmrg    include "group(lctrl_lshift_toggle)"
1560412cdedSmrg    include "group(rctrl_rshift_toggle)"
1570412cdedSmrg};
1580412cdedSmrg
159797b363dSmrgpartial modifier_keys
1600412cdedSmrgxkb_symbols "ctrl_shift_toggle_bidir" {
1610412cdedSmrg    include "group(lctrl_lshift_toggle_rev)"
1620412cdedSmrg    include "group(rctrl_rshift_toggle)"
1630412cdedSmrg};
1640412cdedSmrg
1650412cdedSmrg
1660412cdedSmrg//
1670412cdedSmrg// CTRL-ALT toggle section
1680412cdedSmrg//
1690412cdedSmrgpartial modifier_keys
1700412cdedSmrgxkb_symbols "lctrl_lalt_toggle" {
171154daed1Smrg    virtual_modifiers Alt;
172154daed1Smrg    key <LALT> {
1730412cdedSmrg        type[Group1]="PC_CONTROL_LEVEL2",
174797b363dSmrg        symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
1750412cdedSmrg        virtualMods= Alt
176154daed1Smrg    };
1770412cdedSmrg    key <LCTL> {
1780412cdedSmrg        type[Group1]="PC_ALT_LEVEL2",
179797b363dSmrg        symbols[Group1] = [ Control_L, ISO_Next_Group ]
1800412cdedSmrg    };
1810412cdedSmrg};
1820412cdedSmrg
1830412cdedSmrgpartial modifier_keys
1840412cdedSmrgxkb_symbols "lctrl_lalt_toggle_rev" {
1850412cdedSmrg    virtual_modifiers Alt;
1860412cdedSmrg    key <LALT> {
1870412cdedSmrg        type[Group1]="PC_CONTROL_LEVEL2",
188797b363dSmrg        symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
1890412cdedSmrg        virtualMods= Alt
190154daed1Smrg    };
191154daed1Smrg    key <LCTL> {
1920412cdedSmrg        type[Group1]="PC_ALT_LEVEL2",
193797b363dSmrg        symbols[Group1] = [ Control_L, ISO_Prev_Group ]
1940412cdedSmrg    };
1950412cdedSmrg};
1960412cdedSmrg
1970412cdedSmrgpartial modifier_keys
1980412cdedSmrgxkb_symbols "rctrl_ralt_toggle" {
1990412cdedSmrg    virtual_modifiers Alt;
2000412cdedSmrg    key <RALT> {
2010412cdedSmrg        type[Group1]="PC_CONTROL_LEVEL2",
202797b363dSmrg        symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
2030412cdedSmrg        virtualMods= Alt
204154daed1Smrg    };
205154daed1Smrg    key <RCTL> {
2060412cdedSmrg        type[Group1]="PC_ALT_LEVEL2",
207797b363dSmrg        symbols[Group1] = [ Control_R, ISO_Next_Group ]
208154daed1Smrg    };
209154daed1Smrg};
210154daed1Smrg
211797b363dSmrgpartial modifier_keys
2120412cdedSmrgxkb_symbols "ctrl_alt_toggle" {
2130412cdedSmrg    include "group(lctrl_lalt_toggle)"
2140412cdedSmrg    include "group(rctrl_ralt_toggle)"
2150412cdedSmrg};
2160412cdedSmrg
217797b363dSmrgpartial modifier_keys
2180412cdedSmrgxkb_symbols "ctrl_alt_toggle_bidir" {
2190412cdedSmrg    include "group(lctrl_lalt_toggle_rev)"
2200412cdedSmrg    include "group(rctrl_ralt_toggle)"
2210412cdedSmrg};
2220412cdedSmrg
2230412cdedSmrg
2240412cdedSmrg//
2250412cdedSmrg// ALT-SHIFT toggle section
2260412cdedSmrg//
2270412cdedSmrgpartial modifier_keys
2280412cdedSmrgxkb_symbols "lalt_lshift_toggle" {
229154daed1Smrg    virtual_modifiers Alt;
230154daed1Smrg    key <LALT> {
231797b363dSmrg        symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
2320412cdedSmrg        virtualMods= Alt
233154daed1Smrg    };
2340412cdedSmrg    key <LFSH> {
2350412cdedSmrg        type[Group1]="PC_ALT_LEVEL2",
236797b363dSmrg        symbols[Group1] = [ Shift_L, ISO_Next_Group ]
2370412cdedSmrg    };
2380412cdedSmrg};
2390412cdedSmrg
2400412cdedSmrgpartial modifier_keys
2410412cdedSmrgxkb_symbols "lalt_lshift_toggle_rev" {
2420412cdedSmrg    virtual_modifiers Alt;
2430412cdedSmrg    key <LALT> {
244797b363dSmrg        symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
2450412cdedSmrg        virtualMods= Alt
246154daed1Smrg    };
247154daed1Smrg    key <LFSH> {
2480412cdedSmrg        type[Group1]="PC_ALT_LEVEL2",
249797b363dSmrg        symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
2500412cdedSmrg    };
2510412cdedSmrg};
2520412cdedSmrg
2530412cdedSmrgpartial modifier_keys
2540412cdedSmrgxkb_symbols "ralt_rshift_toggle" {
2550412cdedSmrg    virtual_modifiers Alt;
2560412cdedSmrg    key <RALT> {
257797b363dSmrg        symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
2580412cdedSmrg        virtualMods= Alt
259154daed1Smrg    };
260154daed1Smrg    key <RTSH> {
2610412cdedSmrg        type[Group1]="PC_ALT_LEVEL2",
262797b363dSmrg        symbols[Group1] = [ Shift_R, ISO_Next_Group ]
263154daed1Smrg    };
264154daed1Smrg};
265154daed1Smrg
266797b363dSmrgpartial modifier_keys
2670412cdedSmrgxkb_symbols "alt_shift_toggle" {
2680412cdedSmrg    include "group(lalt_lshift_toggle)"
2690412cdedSmrg    include "group(ralt_rshift_toggle)"
2700412cdedSmrg};
2710412cdedSmrg
272797b363dSmrgpartial modifier_keys
2730412cdedSmrgxkb_symbols "alt_shift_toggle_bidir" {
2740412cdedSmrg    include "group(lalt_lshift_toggle_rev)"
2750412cdedSmrg    include "group(ralt_rshift_toggle)"
2760412cdedSmrg};
2770412cdedSmrg
2780412cdedSmrg
279797b363dSmrg// Pressing the Menu key switches to the next group,
280797b363dSmrg// while Shift+Menu acts as Menu.
281154daed1Smrgpartial modifier_keys
282154daed1Smrgxkb_symbols "menu_toggle" {
283797b363dSmrg    key <MENU> { [ ISO_Next_Group, Menu ] };
284154daed1Smrg};
285154daed1Smrg
286797b363dSmrg// Pressing the left Win key switches to the next group.
287797b363dSmrg// (Using this map, you should declare your keyboard as
288797b363dSmrg// pc101 or pc102 instead of pc104 or pc105.)
289154daed1Smrgpartial modifier_keys
290154daed1Smrgxkb_symbols "lwin_toggle" {
291797b363dSmrg    virtual_modifiers AltGr;
292797b363dSmrg    key <LWIN> {
293797b363dSmrg         virtualMods= AltGr,
294797b363dSmrg        symbols[Group1] = [ ISO_Next_Group ]
295154daed1Smrg    };
296154daed1Smrg};
297154daed1Smrg
298797b363dSmrg// Pressing the right Win key switches to the next group.
299797b363dSmrg// (Using this map, you should declare your keyboard as
300797b363dSmrg// pc101 or pc102 instead of pc104 or pc105.)
301154daed1Smrgpartial modifier_keys
302154daed1Smrgxkb_symbols "rwin_toggle" {
303797b363dSmrg    virtual_modifiers AltGr;
304797b363dSmrg    key <RWIN> {
305797b363dSmrg        virtualMods= AltGr,
306797b363dSmrg        symbols[Group1] = [ ISO_Next_Group ]
307154daed1Smrg    };
308154daed1Smrg};
309154daed1Smrg
310797b363dSmrg// Pressing both Ctrl keys switches to the next or previous group
311797b363dSmrg// (depending on which Ctrl is pressed first).
312154daed1Smrgpartial modifier_keys
313154daed1Smrgxkb_symbols "ctrls_toggle" {
314797b363dSmrg    virtual_modifiers LControl, RControl;
315154daed1Smrg    key <LCTL> {
316797b363dSmrg        type[Group1]="PC_RCONTROL_LEVEL2",
317797b363dSmrg        symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
318797b363dSmrg        virtualMods= LControl
319154daed1Smrg    };
320154daed1Smrg    key <RCTL> {
321797b363dSmrg        type[Group1]="PC_LCONTROL_LEVEL2",
322797b363dSmrg        symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
323797b363dSmrg        virtualMods= RControl
324154daed1Smrg    };
325154daed1Smrg};
326154daed1Smrg
327797b363dSmrg// Pressing both Alt keys switches to the next or previous group
328797b363dSmrg// (depending on which Alt is pressed first).
329154daed1Smrgpartial modifier_keys
330154daed1Smrgxkb_symbols "alts_toggle" {
331797b363dSmrg    virtual_modifiers LAlt, RAlt;
332154daed1Smrg    key <LALT> {
333797b363dSmrg        type[Group1]="PC_RALT_LEVEL2",
334797b363dSmrg        symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
335797b363dSmrg        virtualMods= LAlt
336154daed1Smrg    };
337154daed1Smrg    key <RALT> {
338797b363dSmrg        type[Group1]="PC_LALT_LEVEL2",
339797b363dSmrg        symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
340797b363dSmrg        virtualMods= RAlt
341154daed1Smrg    };
342154daed1Smrg};
343154daed1Smrg
344797b363dSmrg// Pressing the left Shift key switches to the next group.
345154daed1Smrgpartial modifier_keys
346154daed1Smrgxkb_symbols "lshift_toggle" {
347797b363dSmrg    virtual_modifiers AltGr;
348797b363dSmrg    key <LFSH> {
349797b363dSmrg        symbols[Group1] = [ ISO_Next_Group ],
350797b363dSmrg        virtualMods= AltGr
351154daed1Smrg    };
352154daed1Smrg};
353154daed1Smrg
354797b363dSmrg// Pressing the right Shift key switches to the next group.
355154daed1Smrgpartial modifier_keys
356154daed1Smrgxkb_symbols "rshift_toggle" {
357797b363dSmrg    virtual_modifiers AltGr;
358797b363dSmrg    key <RTSH> {
359797b363dSmrg        symbols[Group1] = [ ISO_Next_Group ],
360797b363dSmrg        virtualMods= AltGr
361154daed1Smrg    };
362154daed1Smrg};
363154daed1Smrg
364797b363dSmrg// Pressing the left Alt key switches to the next group.
365154daed1Smrgpartial modifier_keys
366154daed1Smrgxkb_symbols "lalt_toggle" {
367797b363dSmrg    virtual_modifiers AltGr;
368797b363dSmrg    key <LALT> {
369797b363dSmrg        symbols[Group1] = [ ISO_Next_Group ],
370797b363dSmrg        virtualMods= AltGr
371154daed1Smrg    };
372154daed1Smrg};
373154daed1Smrg
374797b363dSmrg// Pressing the left Ctrl key switches to the next group.
375154daed1Smrgpartial modifier_keys
376154daed1Smrgxkb_symbols "lctrl_toggle" {
377797b363dSmrg    virtual_modifiers AltGr;
378797b363dSmrg    key <LCTL> {
379797b363dSmrg        symbols[Group1] = [ ISO_Next_Group ],
380797b363dSmrg        virtualMods= AltGr
381154daed1Smrg    };
382154daed1Smrg};
383154daed1Smrg
384797b363dSmrg// Pressing the right Ctrl key switches to the next group.
385154daed1Smrgpartial modifier_keys
386154daed1Smrgxkb_symbols "rctrl_toggle" {
387797b363dSmrg    virtual_modifiers AltGr;
388797b363dSmrg    key <RCTL> {
389797b363dSmrg        symbols[Group1] = [ ISO_Next_Group ],
390797b363dSmrg        virtualMods= AltGr
391154daed1Smrg    };
392154daed1Smrg};
393154daed1Smrg
394797b363dSmrg// Pressing Alt+Caps_Lock switches to the next group,
395797b363dSmrg// pressing Caps_Lock toggles CapsLock.
396154daed1Smrgpartial modifier_keys
397154daed1Smrgxkb_symbols "alt_caps_toggle" {
398797b363dSmrg    key <CAPS> {
399154daed1Smrg       type="PC_ALT_LEVEL2",
400797b363dSmrg       symbols[Group1] = [ Caps_Lock, ISO_Next_Group ]
401154daed1Smrg    };
402154daed1Smrg};
403154daed1Smrg
404154daed1Smrgpartial hidden modifier_keys
405154daed1Smrgxkb_symbols "olpc" {
406797b363dSmrg    key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] };
407154daed1Smrg};
408154daed1Smrg
409c067fea9Sghenpartial modifier_keys
410c067fea9Sghenxkb_symbols "alt_space_toggle" {
411c067fea9Sghen    key <SPCE> {
412797b363dSmrg        type[Group1]="PC_ALT_LEVEL2",
413797b363dSmrg        symbols[Group1] = [ space, ISO_Next_Group ]
414c067fea9Sghen    };
415c067fea9Sghen};
416c067fea9Sghen
417797b363dSmrg// Pressing the Scroll Lock key switches to the next group,
418c067fea9Sghenpartial modifier_keys
419c067fea9Sghenxkb_symbols "sclk_toggle" {
420797b363dSmrg    virtual_modifiers AltGr;
421797b363dSmrg    key <SCLK> {
422797b363dSmrg        virtualMods= AltGr,
423797b363dSmrg        symbols[Group1] = [ ISO_Next_Group ]
424c067fea9Sghen    };
425c067fea9Sghen};
426c067fea9Sghen
427797b363dSmrg// Control_L+Win_L selects the first group (presumably Lat),
428797b363dSmrg// Control_R+Menu selects the second group (presumably Rus).
429bfd7cbc1Smrgpartial modifier_keys
430bfd7cbc1Smrgxkb_symbols "lctrl_lwin_rctrl_menu" {
431bfd7cbc1Smrg    key <LWIN> {
432797b363dSmrg        type[Group1] = "PC_CONTROL_LEVEL2",
433797b363dSmrg        symbols[Group1] = [ Super_L, ISO_First_Group ]
434bfd7cbc1Smrg    };
435bfd7cbc1Smrg    key <MENU> {
436797b363dSmrg        type[Group1] = "PC_CONTROL_LEVEL2",
437797b363dSmrg        symbols[Group1] = [ Menu, ISO_Last_Group ]
438bfd7cbc1Smrg    };
439797b363dSmrg};
440