146185892Smrg// The right Alt key (while pressed) chooses the next group.
2797b363dSmrgpartial modifier_keys
3154daed1Smrgxkb_symbols "switch" {
446185892Smrg    key <RALT> {[  Mode_switch,  Multi_key  ]};
5154daed1Smrg};
6154daed1Smrg
746185892Smrg// The left Alt key (while pressed) chooses the next group.
8797b363dSmrgpartial modifier_keys
9154daed1Smrgxkb_symbols "lswitch" {
1046185892Smrg    key <LALT> {[  Mode_switch,  Multi_key  ]};
11154daed1Smrg};
12154daed1Smrg
1346185892Smrg// The left Win key (while pressed) chooses the next group.
14154daed1Smrgpartial modifier_keys
1546185892Smrgxkb_symbols "lwin_switch" {
1646185892Smrg    key <LWIN> {[  Mode_switch,  Multi_key  ]};
17154daed1Smrg};
18154daed1Smrg
1946185892Smrg// The right Win key (while pressed) chooses the next group.
20154daed1Smrgpartial modifier_keys
2146185892Smrgxkb_symbols "rwin_switch" {
2246185892Smrg    key <RWIN> {[  Mode_switch,  Multi_key  ]};
23154daed1Smrg};
24154daed1Smrg
2546185892Smrg// Either Win key (while pressed) chooses the next group.
26154daed1Smrgpartial modifier_keys
2746185892Smrgxkb_symbols "win_switch" {
2846185892Smrg    include "group(lwin_switch)"
2946185892Smrg    include "group(rwin_switch)"
30154daed1Smrg};
31154daed1Smrg
3246185892Smrg// The Menu key (while pressed) chooses the next group,
332ab00627Smrg// while Shift+Menu acts as Menu.
342ab00627Smrgpartial modifier_keys
352ab00627Smrgxkb_symbols "menu_switch" {
3646185892Smrg    key <MENU> {[  Mode_switch,  Menu  ]};
372ab00627Smrg};
382ab00627Smrg
3946185892Smrg// The right Ctrl key (while pressed) chooses the next group.
40154daed1Smrgpartial modifier_keys
41154daed1Smrgxkb_symbols "rctrl_switch" {
4246185892Smrg    key <RCTL> {[  Mode_switch  ]};
4346185892Smrg};
4446185892Smrg
4546185892Smrg// The Caps_Lock key (while pressed) chooses the next group,
4646185892Smrg// while Alt+Caps_Lock toggles CapsLock.
4746185892Smrgpartial modifier_keys
4846185892Smrgxkb_symbols "caps_switch" {
4946185892Smrg    key <CAPS> {[  Mode_switch,  Caps_Lock  ], type[group1] = "PC_ALT_LEVEL2" };
50154daed1Smrg};
51154daed1Smrg
52797b363dSmrg// Pressing the right Alt key switches to the next group.
53797b363dSmrgpartial modifier_keys
54154daed1Smrgxkb_symbols "toggle" {
5546185892Smrg    key <RALT> {[  ISO_Next_Group  ]};
5646185892Smrg};
5746185892Smrg
5846185892Smrg// Pressing the left Alt key switches to the next group.
5946185892Smrgpartial modifier_keys
6046185892Smrgxkb_symbols "lalt_toggle" {
6146185892Smrg    key <LALT> {[  ISO_Next_Group  ]};
62154daed1Smrg};
63154daed1Smrg
64797b363dSmrg// Pressing both Shift keys switches to the next or previous group
65797b363dSmrg// (depending on which Shift is pressed first).
66797b363dSmrgpartial modifier_keys
67154daed1Smrgxkb_symbols "shifts_toggle" {
6846185892Smrg    key <LFSH> {[  Shift_L,  ISO_Prev_Group  ]};
6946185892Smrg    key <RTSH> {[  Shift_R,  ISO_Next_Group  ]};
70154daed1Smrg};
71154daed1Smrg
7246185892Smrg// Pressing Caps_Lock switches to the next group,
7346185892Smrg// while Shift+Caps_Lock toggles CapsLock.
7446185892Smrgpartial modifier_keys
7546185892Smrgxkb_symbols "caps_toggle" {
7646185892Smrg    key <CAPS> {[  ISO_Next_Group,  Caps_Lock  ], type[group1] = "TWO_LEVEL" };
7746185892Smrg};
7846185892Smrg
7946185892Smrg// Pressing Shift+Caps_Lock switches to the next group,
8046185892Smrg// while plain Caps_Lock toggles CapsLock.
81154daed1Smrgpartial modifier_keys
82154daed1Smrgxkb_symbols "shift_caps_toggle" {
8346185892Smrg    key <CAPS> {[  Caps_Lock,  ISO_Next_Group  ], type[group1] = "TWO_LEVEL" };
84154daed1Smrg};
85154daed1Smrg
8646185892Smrg// Pressing Alt+Space switches to the next group.
87154daed1Smrgpartial modifier_keys
8846185892Smrgxkb_symbols "alt_space_toggle" {
8946185892Smrg    key <SPCE> {[  space,  ISO_Next_Group  ], type[group1] = "PC_ALT_LEVEL2" };
90154daed1Smrg};
91154daed1Smrg
9246185892Smrg// Pressing Win+Space switches to the next group.
9352a82186Smrgpartial modifier_keys
9452a82186Smrgxkb_symbols "win_space_toggle" {
9546185892Smrg    key <SPCE> {[  space,  ISO_Next_Group  ], type[group1] = "PC_SUPER_LEVEL2" };
9646185892Smrg};
9746185892Smrg
9846185892Smrg// Pressing Ctrl+Space switches to the next group.
9946185892Smrgpartial modifier_keys
10046185892Smrgxkb_symbols "ctrl_space_toggle" {
10146185892Smrg    key <SPCE> {[  space,  ISO_Next_Group  ], type[group1] = "PC_CONTROL_LEVEL2" };
10246185892Smrg};
10346185892Smrg
10446185892Smrg
10546185892Smrg// Pressing Caps_Lock selects the first group,
10646185892Smrg// pressing Shift+Caps_Lock selects the second group.
10746185892Smrgpartial modifier_keys
10846185892Smrgxkb_symbols "caps_select" {
10946185892Smrg    key <CAPS> {[  ISO_First_Group,  ISO_Last_Group  ], type[group1] = "TWO_LEVEL" };
11052a82186Smrg};
11152a82186Smrg
112797b363dSmrg// Pressing the left Win key selects the first group,
11346185892Smrg// pressing the right Win key or the Menu key selects the second group.
11446185892Smrgpartial modifier_keys
11546185892Smrgxkb_symbols "win_menu_select" {
11646185892Smrg    key <LWIN> {[  ISO_First_Group  ]};
11746185892Smrg    key <RWIN> {[  ISO_Last_Group  ]};
11846185892Smrg    key <MENU> {[  ISO_Last_Group  ]};
119c067fea9Sghen};
120c067fea9Sghen
121797b363dSmrg// Pressing the left Ctrl key selects the first group,
12246185892Smrg// pressing the right Ctrl key selects the second group.
123c067fea9Sghenpartial modifier_keys
12446185892Smrgxkb_symbols "ctrl_select" {
12546185892Smrg    key <LCTL> {[  ISO_First_Group  ]};
12646185892Smrg    key <RCTL> {[  ISO_Last_Group  ]};
127c067fea9Sghen};
128c067fea9Sghen
1290412cdedSmrg
1300412cdedSmrg//
1310412cdedSmrg// CTRL-SHIFT toggle section
1320412cdedSmrg//
133797b363dSmrgpartial modifier_keys
1340412cdedSmrgxkb_symbols "lctrl_lshift_toggle" {
13546185892Smrg    key <LFSH> {[  Shift_L,  ISO_Next_Group  ], type[group1] = "PC_CONTROL_LEVEL2" };
13646185892Smrg    key <LCTL> {[  Control_L,  ISO_Next_Group  ]};
1370412cdedSmrg};
1380412cdedSmrg
139797b363dSmrgpartial modifier_keys
1400412cdedSmrgxkb_symbols "lctrl_lshift_toggle_rev" {
14146185892Smrg    key <LFSH> {[  Shift_L,  ISO_Prev_Group  ], type[group1] = "PC_CONTROL_LEVEL2" };
14246185892Smrg    key <LCTL> {[  Control_L,  ISO_Prev_Group  ]};
1430412cdedSmrg};
1440412cdedSmrg
1450412cdedSmrgpartial modifier_keys
1460412cdedSmrgxkb_symbols "rctrl_rshift_toggle" {
14746185892Smrg    key <RTSH> {[  Shift_R,  ISO_Next_Group  ], type[group1] = "PC_CONTROL_LEVEL2" };
14846185892Smrg    key <RCTL> {[  Control_R,  ISO_Next_Group  ]};
1490412cdedSmrg};
1500412cdedSmrg
151797b363dSmrgpartial modifier_keys
1520412cdedSmrgxkb_symbols "ctrl_shift_toggle" {
1530412cdedSmrg    include "group(lctrl_lshift_toggle)"
1540412cdedSmrg    include "group(rctrl_rshift_toggle)"
1550412cdedSmrg};
1560412cdedSmrg
157797b363dSmrgpartial modifier_keys
1580412cdedSmrgxkb_symbols "ctrl_shift_toggle_bidir" {
1590412cdedSmrg    include "group(lctrl_lshift_toggle_rev)"
1600412cdedSmrg    include "group(rctrl_rshift_toggle)"
1610412cdedSmrg};
1620412cdedSmrg
1630412cdedSmrg
1640412cdedSmrg//
1650412cdedSmrg// CTRL-ALT toggle section
1660412cdedSmrg//
1670412cdedSmrgpartial modifier_keys
1680412cdedSmrgxkb_symbols "lctrl_lalt_toggle" {
16946185892Smrg    key <LALT> {[  NoSymbol,  ISO_Next_Group  ], type[group1] = "PC_CONTROL_LEVEL2" };
17046185892Smrg    key <LCTL> {[  Control_L,  ISO_Next_Group  ], type[group1] = "PC_ALT_LEVEL2" };
1710412cdedSmrg};
1720412cdedSmrg
1730412cdedSmrgpartial modifier_keys
1740412cdedSmrgxkb_symbols "lctrl_lalt_toggle_rev" {
17546185892Smrg    key <LALT> {[  NoSymbol,  ISO_Prev_Group  ], type[group1] = "PC_CONTROL_LEVEL2" };
17646185892Smrg    key <LCTL> {[  Control_L,  ISO_Prev_Group  ], type[group1] = "PC_ALT_LEVEL2" };
1770412cdedSmrg};
1780412cdedSmrg
1790412cdedSmrgpartial modifier_keys
1800412cdedSmrgxkb_symbols "rctrl_ralt_toggle" {
18146185892Smrg    key <RALT> {[  NoSymbol,  ISO_Next_Group  ], type[group1] = "PC_CONTROL_LEVEL2" };
18246185892Smrg    key <RCTL> {[  Control_R,  ISO_Next_Group  ], type[group1] = "PC_ALT_LEVEL2" };
183154daed1Smrg};
184154daed1Smrg
185797b363dSmrgpartial modifier_keys
1860412cdedSmrgxkb_symbols "ctrl_alt_toggle" {
1870412cdedSmrg    include "group(lctrl_lalt_toggle)"
1880412cdedSmrg    include "group(rctrl_ralt_toggle)"
1890412cdedSmrg};
1900412cdedSmrg
191797b363dSmrgpartial modifier_keys
1920412cdedSmrgxkb_symbols "ctrl_alt_toggle_bidir" {
1930412cdedSmrg    include "group(lctrl_lalt_toggle_rev)"
1940412cdedSmrg    include "group(rctrl_ralt_toggle)"
1950412cdedSmrg};
1960412cdedSmrg
1970412cdedSmrg
1980412cdedSmrg//
1990412cdedSmrg// ALT-SHIFT toggle section
2000412cdedSmrg//
2010412cdedSmrgpartial modifier_keys
2020412cdedSmrgxkb_symbols "lalt_lshift_toggle" {
20346185892Smrg    key <LALT> {[  NoSymbol,  ISO_Next_Group  ], type[group1] = "TWO_LEVEL" };
20446185892Smrg    key <LFSH> {[  Shift_L,  ISO_Next_Group  ], type[group1] = "PC_ALT_LEVEL2" };
2050412cdedSmrg};
2060412cdedSmrg
2070412cdedSmrgpartial modifier_keys
2080412cdedSmrgxkb_symbols "lalt_lshift_toggle_rev" {
20946185892Smrg    key <LALT> {[  NoSymbol,  ISO_Prev_Group  ], type[group1] = "TWO_LEVEL" };
21046185892Smrg    key <LFSH> {[  Shift_L,  ISO_Prev_Group  ], type[group1] = "PC_ALT_LEVEL2" };
2110412cdedSmrg};
2120412cdedSmrg
2130412cdedSmrgpartial modifier_keys
2140412cdedSmrgxkb_symbols "ralt_rshift_toggle" {
21546185892Smrg    key <RALT> {[  NoSymbol,  ISO_Next_Group  ], type[group1] = "TWO_LEVEL" };
21646185892Smrg    key <RTSH> {[  Shift_R,  ISO_Next_Group  ], type[group1] = "PC_ALT_LEVEL2" };
217154daed1Smrg};
218154daed1Smrg
219797b363dSmrgpartial modifier_keys
2200412cdedSmrgxkb_symbols "alt_shift_toggle" {
2210412cdedSmrg    include "group(lalt_lshift_toggle)"
2220412cdedSmrg    include "group(ralt_rshift_toggle)"
2230412cdedSmrg};
2240412cdedSmrg
225797b363dSmrgpartial modifier_keys
2260412cdedSmrgxkb_symbols "alt_shift_toggle_bidir" {
2270412cdedSmrg    include "group(lalt_lshift_toggle_rev)"
2280412cdedSmrg    include "group(ralt_rshift_toggle)"
2290412cdedSmrg};
2300412cdedSmrg
2310412cdedSmrg
232797b363dSmrg// Pressing the Menu key switches to the next group,
233797b363dSmrg// while Shift+Menu acts as Menu.
234154daed1Smrgpartial modifier_keys
235154daed1Smrgxkb_symbols "menu_toggle" {
23646185892Smrg    key <MENU> {[  ISO_Next_Group,  Menu ]};
237154daed1Smrg};
238154daed1Smrg
239797b363dSmrg// Pressing the left Win key switches to the next group.
240154daed1Smrgpartial modifier_keys
241154daed1Smrgxkb_symbols "lwin_toggle" {
24246185892Smrg    key <LWIN> {[  ISO_Next_Group  ]};
243154daed1Smrg};
244154daed1Smrg
245797b363dSmrg// Pressing the right Win key switches to the next group.
246154daed1Smrgpartial modifier_keys
247154daed1Smrgxkb_symbols "rwin_toggle" {
24846185892Smrg    key <RWIN> {[  ISO_Next_Group  ]};
249154daed1Smrg};
250154daed1Smrg
251797b363dSmrg// Pressing both Ctrl keys switches to the next or previous group
252797b363dSmrg// (depending on which Ctrl is pressed first).
253154daed1Smrgpartial modifier_keys
254154daed1Smrgxkb_symbols "ctrls_toggle" {
25546185892Smrg    key <LCTL> {[  NoSymbol,  ISO_Prev_Group  ], type[group1] = "PC_CONTROL_LEVEL2" };
25646185892Smrg    key <RCTL> {[  NoSymbol,  ISO_Next_Group  ], type[group1] = "PC_CONTROL_LEVEL2" };
25746185892Smrg};
25846185892Smrg
25946185892Smrg// Pressing both Alt keys switches to the next or previous group
260797b363dSmrg// (depending on which Alt is pressed first).
261154daed1Smrgpartial modifier_keys
262154daed1Smrgxkb_symbols "alts_toggle" {
26346185892Smrg    key <LALT> {[  Alt_L,  ISO_Prev_Group  ], type[group1] = "PC_ALT_LEVEL2" };
26446185892Smrg    key <RALT> {[  Alt_R,  ISO_Next_Group  ], type[group1] = "PC_ALT_LEVEL2" };
26546185892Smrg};
26646185892Smrg
26746185892Smrg// Pressing Alt plus AltGr switches to the next or previous group
26846185892Smrg// (depending on which one is pressed first).
26946185892Smrgpartial modifier_keys
27046185892Smrgxkb_symbols "alt_altgr_toggle" {
27146185892Smrg    key <LALT> {[  Alt_L,  Alt_L,  ISO_Prev_Group,  ISO_Prev_Group  ],
27246185892Smrg							type[group1] = "FOUR_LEVEL" };
27346185892Smrg    key <RALT> {[  ISO_Level3_Shift,  ISO_Next_Group  ], type[group1] = "PC_ALT_LEVEL2" };
274154daed1Smrg};
275154daed1Smrg
276797b363dSmrg// Pressing the left Shift key switches to the next group.
277154daed1Smrgpartial modifier_keys
278154daed1Smrgxkb_symbols "lshift_toggle" {
27946185892Smrg    key <LFSH> {[  ISO_Next_Group  ]};
280154daed1Smrg};
281154daed1Smrg
282797b363dSmrg// Pressing the right Shift key switches to the next group.
283154daed1Smrgpartial modifier_keys
284154daed1Smrgxkb_symbols "rshift_toggle" {
28546185892Smrg    key <RTSH> {[  ISO_Next_Group  ]};
286154daed1Smrg};
287154daed1Smrg
288797b363dSmrg// Pressing the left Ctrl key switches to the next group.
289154daed1Smrgpartial modifier_keys
290154daed1Smrgxkb_symbols "lctrl_toggle" {
29146185892Smrg    key <LCTL> {[  ISO_Next_Group  ]};
292154daed1Smrg};
293154daed1Smrg
294797b363dSmrg// Pressing the right Ctrl key switches to the next group.
295154daed1Smrgpartial modifier_keys
296154daed1Smrgxkb_symbols "rctrl_toggle" {
29746185892Smrg    key <RCTL> {[  ISO_Next_Group  ]};
298154daed1Smrg};
299154daed1Smrg
300797b363dSmrg// Pressing Alt+Caps_Lock switches to the next group,
30146185892Smrg// while pressing Caps_Lock alone toggles CapsLock.
302154daed1Smrgpartial modifier_keys
303154daed1Smrgxkb_symbols "alt_caps_toggle" {
30446185892Smrg    key <CAPS> {[  Caps_Lock, ISO_Next_Group  ], type[group1] = "PC_ALT_LEVEL2" };
305154daed1Smrg};
306154daed1Smrg
30721fe479eSmrghidden partial modifier_keys
308154daed1Smrgxkb_symbols "olpc" {
30946185892Smrg    key <I219> {[  ISO_Next_Group,  ISO_Prev_Group  ]};
310154daed1Smrg};
311154daed1Smrg
31246185892Smrg// Pressing the Scroll Lock key switches to the next group.
313c067fea9Sghenpartial modifier_keys
314c067fea9Sghenxkb_symbols "sclk_toggle" {
31546185892Smrg    key <SCLK> {[  ISO_Next_Group  ]};
316c067fea9Sghen};
317c067fea9Sghen
31846185892Smrg// Pressing Ctrl + the left Win key selects the first group,
31946185892Smrg// pressing Ctrl + the Menu key selects the second group.
320bfd7cbc1Smrgpartial modifier_keys
321bfd7cbc1Smrgxkb_symbols "lctrl_lwin_rctrl_menu" {
32246185892Smrg    key <LWIN> {[  Super_L,  ISO_First_Group  ], type[group1] = "PC_CONTROL_LEVEL2" };
32346185892Smrg    key <MENU> {[  Menu,  ISO_Last_Group  ], type[group1] = "PC_CONTROL_LEVEL2" };
324797b363dSmrg};
325188967beSsnj
32646185892Smrg// Pressing Ctrl + the left Win key switches to the next group.
327188967beSsnjpartial modifier_keys
328188967beSsnjxkb_symbols "lctrl_lwin_toggle" {
32946185892Smrg    key <LWIN> {[  Super_L,  ISO_Next_Group  ], type[group1] = "PC_CONTROL_LEVEL2" };
330188967beSsnj};
331