group revision 21fe479e
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
8852a82186Smrg// toggle using win + space as combo
8952a82186Smrgpartial modifier_keys
9052a82186Smrgxkb_symbols "win_space_toggle" {
9152a82186Smrg  key <SPCE> {
9252a82186Smrg    type[Group1]="PC_SUPER_LEVEL2",
9352a82186Smrg    symbols[Group1]= [ space, ISO_Next_Group ]
9452a82186Smrg  };
9552a82186Smrg};
9652a82186Smrg
97797b363dSmrg// Pressing the left Win key selects the first group,
98797b363dSmrg// pressing the right Win or the Menu key selects the last group.
99c067fea9Sghenpartial modifier_keys
100c067fea9Sghenxkb_symbols "win_menu_switch" {
101c067fea9Sghen    virtual_modifiers AltGr;
102c067fea9Sghen    key <LWIN> {
103c067fea9Sghen        virtualMods= AltGr,
104c067fea9Sghen        symbols[Group1] = [ ISO_First_Group ]
105c067fea9Sghen    };
106c067fea9Sghen    key <MENU> {
107c067fea9Sghen        virtualMods= AltGr,
108c067fea9Sghen        symbols[Group1] = [ ISO_Last_Group ]
109c067fea9Sghen    };
110c067fea9Sghen    key <RWIN> {
111c067fea9Sghen        virtualMods= AltGr,
112c067fea9Sghen        symbols[Group1] = [ ISO_Last_Group ]
113c067fea9Sghen    };
114c067fea9Sghen};
115c067fea9Sghen
116797b363dSmrg// Pressing the left Ctrl key selects the first group,
117797b363dSmrg// pressing the right Ctrl key selects the last group.
118c067fea9Sghenpartial modifier_keys
119c067fea9Sghenxkb_symbols "lctrl_rctrl_switch" {
120c067fea9Sghen    virtual_modifiers AltGr;
121c067fea9Sghen    key <LCTL> {
122c067fea9Sghen        virtualMods= AltGr,
123c067fea9Sghen        symbols[Group1] = [ ISO_First_Group ]
124c067fea9Sghen    };
125c067fea9Sghen    key <RCTL> {
126c067fea9Sghen        virtualMods= AltGr,
127c067fea9Sghen        symbols[Group1] = [ ISO_Last_Group ]
128c067fea9Sghen    };
129c067fea9Sghen};
130c067fea9Sghen
1310412cdedSmrg
1320412cdedSmrg//
1330412cdedSmrg// CTRL-SHIFT toggle section
1340412cdedSmrg//
135797b363dSmrgpartial modifier_keys
1360412cdedSmrgxkb_symbols "lctrl_lshift_toggle" {
1370412cdedSmrg    key <LFSH> {
1380412cdedSmrg        type[Group1]="PC_CONTROL_LEVEL2",
139797b363dSmrg        symbols[Group1] = [ Shift_L, ISO_Next_Group ]
1400412cdedSmrg    };
1410412cdedSmrg    key <LCTL> { [ Control_L, ISO_Next_Group ] };
1420412cdedSmrg};
1430412cdedSmrg
144797b363dSmrgpartial modifier_keys
1450412cdedSmrgxkb_symbols "lctrl_lshift_toggle_rev" {
1460412cdedSmrg    key <LFSH> {
1470412cdedSmrg        type[Group1]="PC_CONTROL_LEVEL2",
148797b363dSmrg        symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
1490412cdedSmrg    };
1500412cdedSmrg    key <LCTL> { [ Control_L, ISO_Prev_Group ] };
1510412cdedSmrg};
1520412cdedSmrg
1530412cdedSmrgpartial modifier_keys
1540412cdedSmrgxkb_symbols "rctrl_rshift_toggle" {
1550412cdedSmrg    key <RTSH> {
1560412cdedSmrg        type[Group1]="PC_CONTROL_LEVEL2",
157797b363dSmrg        symbols[Group1] = [ Shift_R, ISO_Next_Group ]
1580412cdedSmrg    };
1590412cdedSmrg    key <RCTL> { [ Control_R, ISO_Next_Group ] };
1600412cdedSmrg};
1610412cdedSmrg
162797b363dSmrgpartial modifier_keys
1630412cdedSmrgxkb_symbols "ctrl_shift_toggle" {
1640412cdedSmrg    include "group(lctrl_lshift_toggle)"
1650412cdedSmrg    include "group(rctrl_rshift_toggle)"
1660412cdedSmrg};
1670412cdedSmrg
168797b363dSmrgpartial modifier_keys
1690412cdedSmrgxkb_symbols "ctrl_shift_toggle_bidir" {
1700412cdedSmrg    include "group(lctrl_lshift_toggle_rev)"
1710412cdedSmrg    include "group(rctrl_rshift_toggle)"
1720412cdedSmrg};
1730412cdedSmrg
1740412cdedSmrg
1750412cdedSmrg//
1760412cdedSmrg// CTRL-ALT toggle section
1770412cdedSmrg//
1780412cdedSmrgpartial modifier_keys
1790412cdedSmrgxkb_symbols "lctrl_lalt_toggle" {
180154daed1Smrg    virtual_modifiers Alt;
181154daed1Smrg    key <LALT> {
1820412cdedSmrg        type[Group1]="PC_CONTROL_LEVEL2",
183797b363dSmrg        symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
1840412cdedSmrg        virtualMods= Alt
185154daed1Smrg    };
1860412cdedSmrg    key <LCTL> {
1870412cdedSmrg        type[Group1]="PC_ALT_LEVEL2",
188797b363dSmrg        symbols[Group1] = [ Control_L, ISO_Next_Group ]
1890412cdedSmrg    };
1900412cdedSmrg};
1910412cdedSmrg
1920412cdedSmrgpartial modifier_keys
1930412cdedSmrgxkb_symbols "lctrl_lalt_toggle_rev" {
1940412cdedSmrg    virtual_modifiers Alt;
1950412cdedSmrg    key <LALT> {
1960412cdedSmrg        type[Group1]="PC_CONTROL_LEVEL2",
197797b363dSmrg        symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
1980412cdedSmrg        virtualMods= Alt
199154daed1Smrg    };
200154daed1Smrg    key <LCTL> {
2010412cdedSmrg        type[Group1]="PC_ALT_LEVEL2",
202797b363dSmrg        symbols[Group1] = [ Control_L, ISO_Prev_Group ]
2030412cdedSmrg    };
2040412cdedSmrg};
2050412cdedSmrg
2060412cdedSmrgpartial modifier_keys
2070412cdedSmrgxkb_symbols "rctrl_ralt_toggle" {
2080412cdedSmrg    virtual_modifiers Alt;
2090412cdedSmrg    key <RALT> {
2100412cdedSmrg        type[Group1]="PC_CONTROL_LEVEL2",
211797b363dSmrg        symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
2120412cdedSmrg        virtualMods= Alt
213154daed1Smrg    };
214154daed1Smrg    key <RCTL> {
2150412cdedSmrg        type[Group1]="PC_ALT_LEVEL2",
216797b363dSmrg        symbols[Group1] = [ Control_R, ISO_Next_Group ]
217154daed1Smrg    };
218154daed1Smrg};
219154daed1Smrg
220797b363dSmrgpartial modifier_keys
2210412cdedSmrgxkb_symbols "ctrl_alt_toggle" {
2220412cdedSmrg    include "group(lctrl_lalt_toggle)"
2230412cdedSmrg    include "group(rctrl_ralt_toggle)"
2240412cdedSmrg};
2250412cdedSmrg
226797b363dSmrgpartial modifier_keys
2270412cdedSmrgxkb_symbols "ctrl_alt_toggle_bidir" {
2280412cdedSmrg    include "group(lctrl_lalt_toggle_rev)"
2290412cdedSmrg    include "group(rctrl_ralt_toggle)"
2300412cdedSmrg};
2310412cdedSmrg
2320412cdedSmrg
2330412cdedSmrg//
2340412cdedSmrg// ALT-SHIFT toggle section
2350412cdedSmrg//
2360412cdedSmrgpartial modifier_keys
2370412cdedSmrgxkb_symbols "lalt_lshift_toggle" {
238154daed1Smrg    virtual_modifiers Alt;
239154daed1Smrg    key <LALT> {
240797b363dSmrg        symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
2410412cdedSmrg        virtualMods= Alt
242154daed1Smrg    };
2430412cdedSmrg    key <LFSH> {
2440412cdedSmrg        type[Group1]="PC_ALT_LEVEL2",
245797b363dSmrg        symbols[Group1] = [ Shift_L, ISO_Next_Group ]
2460412cdedSmrg    };
2470412cdedSmrg};
2480412cdedSmrg
2490412cdedSmrgpartial modifier_keys
2500412cdedSmrgxkb_symbols "lalt_lshift_toggle_rev" {
2510412cdedSmrg    virtual_modifiers Alt;
2520412cdedSmrg    key <LALT> {
253797b363dSmrg        symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
2540412cdedSmrg        virtualMods= Alt
255154daed1Smrg    };
256154daed1Smrg    key <LFSH> {
2570412cdedSmrg        type[Group1]="PC_ALT_LEVEL2",
258797b363dSmrg        symbols[Group1] = [ Shift_L, ISO_Prev_Group ]
2590412cdedSmrg    };
2600412cdedSmrg};
2610412cdedSmrg
2620412cdedSmrgpartial modifier_keys
2630412cdedSmrgxkb_symbols "ralt_rshift_toggle" {
2640412cdedSmrg    virtual_modifiers Alt;
2650412cdedSmrg    key <RALT> {
266797b363dSmrg        symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
2670412cdedSmrg        virtualMods= Alt
268154daed1Smrg    };
269154daed1Smrg    key <RTSH> {
2700412cdedSmrg        type[Group1]="PC_ALT_LEVEL2",
271797b363dSmrg        symbols[Group1] = [ Shift_R, ISO_Next_Group ]
272154daed1Smrg    };
273154daed1Smrg};
274154daed1Smrg
275797b363dSmrgpartial modifier_keys
2760412cdedSmrgxkb_symbols "alt_shift_toggle" {
2770412cdedSmrg    include "group(lalt_lshift_toggle)"
2780412cdedSmrg    include "group(ralt_rshift_toggle)"
2790412cdedSmrg};
2800412cdedSmrg
281797b363dSmrgpartial modifier_keys
2820412cdedSmrgxkb_symbols "alt_shift_toggle_bidir" {
2830412cdedSmrg    include "group(lalt_lshift_toggle_rev)"
2840412cdedSmrg    include "group(ralt_rshift_toggle)"
2850412cdedSmrg};
2860412cdedSmrg
2870412cdedSmrg
288797b363dSmrg// Pressing the Menu key switches to the next group,
289797b363dSmrg// while Shift+Menu acts as Menu.
290154daed1Smrgpartial modifier_keys
291154daed1Smrgxkb_symbols "menu_toggle" {
292797b363dSmrg    key <MENU> { [ ISO_Next_Group, Menu ] };
293154daed1Smrg};
294154daed1Smrg
295797b363dSmrg// Pressing the left Win key switches to the next group.
296797b363dSmrg// (Using this map, you should declare your keyboard as
297797b363dSmrg// pc101 or pc102 instead of pc104 or pc105.)
298154daed1Smrgpartial modifier_keys
299154daed1Smrgxkb_symbols "lwin_toggle" {
300797b363dSmrg    virtual_modifiers AltGr;
301797b363dSmrg    key <LWIN> {
302797b363dSmrg         virtualMods= AltGr,
303797b363dSmrg        symbols[Group1] = [ ISO_Next_Group ]
304154daed1Smrg    };
305154daed1Smrg};
306154daed1Smrg
307797b363dSmrg// Pressing the right Win key switches to the next group.
308797b363dSmrg// (Using this map, you should declare your keyboard as
309797b363dSmrg// pc101 or pc102 instead of pc104 or pc105.)
310154daed1Smrgpartial modifier_keys
311154daed1Smrgxkb_symbols "rwin_toggle" {
312797b363dSmrg    virtual_modifiers AltGr;
313797b363dSmrg    key <RWIN> {
314797b363dSmrg        virtualMods= AltGr,
315797b363dSmrg        symbols[Group1] = [ ISO_Next_Group ]
316154daed1Smrg    };
317154daed1Smrg};
318154daed1Smrg
319797b363dSmrg// Pressing both Ctrl keys switches to the next or previous group
320797b363dSmrg// (depending on which Ctrl is pressed first).
321154daed1Smrgpartial modifier_keys
322154daed1Smrgxkb_symbols "ctrls_toggle" {
323797b363dSmrg    virtual_modifiers LControl, RControl;
324154daed1Smrg    key <LCTL> {
325797b363dSmrg        type[Group1]="PC_RCONTROL_LEVEL2",
326797b363dSmrg        symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
327797b363dSmrg        virtualMods= LControl
328154daed1Smrg    };
329154daed1Smrg    key <RCTL> {
330797b363dSmrg        type[Group1]="PC_LCONTROL_LEVEL2",
331797b363dSmrg        symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
332797b363dSmrg        virtualMods= RControl
333154daed1Smrg    };
334154daed1Smrg};
335154daed1Smrg
336797b363dSmrg// Pressing both Alt keys switches to the next or previous group
337797b363dSmrg// (depending on which Alt is pressed first).
338154daed1Smrgpartial modifier_keys
339154daed1Smrgxkb_symbols "alts_toggle" {
340797b363dSmrg    virtual_modifiers LAlt, RAlt;
341154daed1Smrg    key <LALT> {
342797b363dSmrg        type[Group1]="PC_RALT_LEVEL2",
343797b363dSmrg        symbols[Group1] = [ NoSymbol, ISO_Prev_Group ],
344797b363dSmrg        virtualMods= LAlt
345154daed1Smrg    };
346154daed1Smrg    key <RALT> {
347797b363dSmrg        type[Group1]="PC_LALT_LEVEL2",
348797b363dSmrg        symbols[Group1] = [ NoSymbol, ISO_Next_Group ],
349797b363dSmrg        virtualMods= RAlt
350154daed1Smrg    };
351154daed1Smrg};
352154daed1Smrg
353797b363dSmrg// Pressing the left Shift key switches to the next group.
354154daed1Smrgpartial modifier_keys
355154daed1Smrgxkb_symbols "lshift_toggle" {
356797b363dSmrg    virtual_modifiers AltGr;
357797b363dSmrg    key <LFSH> {
358797b363dSmrg        symbols[Group1] = [ ISO_Next_Group ],
359797b363dSmrg        virtualMods= AltGr
360154daed1Smrg    };
361154daed1Smrg};
362154daed1Smrg
363797b363dSmrg// Pressing the right Shift key switches to the next group.
364154daed1Smrgpartial modifier_keys
365154daed1Smrgxkb_symbols "rshift_toggle" {
366797b363dSmrg    virtual_modifiers AltGr;
367797b363dSmrg    key <RTSH> {
368797b363dSmrg        symbols[Group1] = [ ISO_Next_Group ],
369797b363dSmrg        virtualMods= AltGr
370154daed1Smrg    };
371154daed1Smrg};
372154daed1Smrg
373797b363dSmrg// Pressing the left Alt key switches to the next group.
374154daed1Smrgpartial modifier_keys
375154daed1Smrgxkb_symbols "lalt_toggle" {
376797b363dSmrg    virtual_modifiers AltGr;
377797b363dSmrg    key <LALT> {
378797b363dSmrg        symbols[Group1] = [ ISO_Next_Group ],
379797b363dSmrg        virtualMods= AltGr
380154daed1Smrg    };
381154daed1Smrg};
382154daed1Smrg
383797b363dSmrg// Pressing the left Ctrl key switches to the next group.
384154daed1Smrgpartial modifier_keys
385154daed1Smrgxkb_symbols "lctrl_toggle" {
386797b363dSmrg    virtual_modifiers AltGr;
387797b363dSmrg    key <LCTL> {
388797b363dSmrg        symbols[Group1] = [ ISO_Next_Group ],
389797b363dSmrg        virtualMods= AltGr
390154daed1Smrg    };
391154daed1Smrg};
392154daed1Smrg
393797b363dSmrg// Pressing the right Ctrl key switches to the next group.
394154daed1Smrgpartial modifier_keys
395154daed1Smrgxkb_symbols "rctrl_toggle" {
396797b363dSmrg    virtual_modifiers AltGr;
397797b363dSmrg    key <RCTL> {
398797b363dSmrg        symbols[Group1] = [ ISO_Next_Group ],
399797b363dSmrg        virtualMods= AltGr
400154daed1Smrg    };
401154daed1Smrg};
402154daed1Smrg
403797b363dSmrg// Pressing Alt+Caps_Lock switches to the next group,
404797b363dSmrg// pressing Caps_Lock toggles CapsLock.
405154daed1Smrgpartial modifier_keys
406154daed1Smrgxkb_symbols "alt_caps_toggle" {
407797b363dSmrg    key <CAPS> {
408154daed1Smrg       type="PC_ALT_LEVEL2",
409797b363dSmrg       symbols[Group1] = [ Caps_Lock, ISO_Next_Group ]
410154daed1Smrg    };
411154daed1Smrg};
412154daed1Smrg
41321fe479eSmrghidden partial modifier_keys
414154daed1Smrgxkb_symbols "olpc" {
415797b363dSmrg    key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] };
416154daed1Smrg};
417154daed1Smrg
418c067fea9Sghenpartial modifier_keys
419c067fea9Sghenxkb_symbols "alt_space_toggle" {
420c067fea9Sghen    key <SPCE> {
421797b363dSmrg        type[Group1]="PC_ALT_LEVEL2",
422797b363dSmrg        symbols[Group1] = [ space, ISO_Next_Group ]
423c067fea9Sghen    };
424c067fea9Sghen};
425c067fea9Sghen
426797b363dSmrg// Pressing the Scroll Lock key switches to the next group,
427c067fea9Sghenpartial modifier_keys
428c067fea9Sghenxkb_symbols "sclk_toggle" {
429797b363dSmrg    virtual_modifiers AltGr;
430797b363dSmrg    key <SCLK> {
431797b363dSmrg        virtualMods= AltGr,
432797b363dSmrg        symbols[Group1] = [ ISO_Next_Group ]
433c067fea9Sghen    };
434c067fea9Sghen};
435c067fea9Sghen
436797b363dSmrg// Control_L+Win_L selects the first group (presumably Lat),
437797b363dSmrg// Control_R+Menu selects the second group (presumably Rus).
438bfd7cbc1Smrgpartial modifier_keys
439bfd7cbc1Smrgxkb_symbols "lctrl_lwin_rctrl_menu" {
440bfd7cbc1Smrg    key <LWIN> {
441797b363dSmrg        type[Group1] = "PC_CONTROL_LEVEL2",
442797b363dSmrg        symbols[Group1] = [ Super_L, ISO_First_Group ]
443bfd7cbc1Smrg    };
444bfd7cbc1Smrg    key <MENU> {
445797b363dSmrg        type[Group1] = "PC_CONTROL_LEVEL2",
446797b363dSmrg        symbols[Group1] = [ Menu, ISO_Last_Group ]
447bfd7cbc1Smrg    };
448797b363dSmrg};
449