group revision bfd7cbc1
1154daed1Smrg// using the group(switch) map, the right alt key temporarily chooses 
2154daed1Smrg// the second keyboard group (until it is released).
3154daed1Smrg//
4154daed1Smrgpartial modifier_keys 
5154daed1Smrgxkb_symbols "switch" {
6154daed1Smrg    key <RALT>	{ 	
7154daed1Smrg	symbols[Group1]= [	Mode_switch, Multi_key 	],
8154daed1Smrg	virtualMods= AltGr
9154daed1Smrg    };
10154daed1Smrg};
11154daed1Smrg
12154daed1Smrg// using the group(lswitch) map, the left alt key temporarily chooses
13154daed1Smrg// the second keyboard group (until it is released).
14154daed1Smrg//
15154daed1Smrgpartial modifier_keys 
16154daed1Smrgxkb_symbols "lswitch" {
17154daed1Smrg    key <LALT>	{ 	
18154daed1Smrg	symbols[Group1]= [	Mode_switch, Multi_key 	],
19154daed1Smrg	virtualMods= AltGr
20154daed1Smrg    };
21154daed1Smrg};
22154daed1Smrg
23154daed1Smrg
24154daed1Smrg// using the group(win_switch) map, both Windows'logo keys temporarily
25154daed1Smrg// choose the second keyboard group (until release).  If you use this
26154daed1Smrg// map, you would declare you keyboard as pc101 or pc102 instead of
27154daed1Smrg// pc104 or pc105.
28154daed1Smrgpartial modifier_keys
29154daed1Smrgxkb_symbols "win_switch" {
305a35480eSmrg    include "group(lwin_switch)"
315a35480eSmrg    include "group(rwin_switch)"
32154daed1Smrg};
33154daed1Smrg
34154daed1Smrg// using the group(lwin_switch) map, the left Windows' logo key
35154daed1Smrg// temporarily chooses the second keyboard group (until it is
36154daed1Smrg// released).  If you use this map, you would declare you keyboard as
37154daed1Smrg// pc101 or pc102 instead of pc104 or pc105.
38154daed1Smrgpartial modifier_keys
39154daed1Smrgxkb_symbols "lwin_switch" {
40154daed1Smrg  key <LWIN> {
41154daed1Smrg    symbols[Group1] = [ Mode_switch, Multi_key ],
42154daed1Smrg    virtualMods= AltGr
43154daed1Smrg    };
44154daed1Smrg};
45154daed1Smrg
46154daed1Smrg// using the group(rwin_switch) map, the right Windows' logo key
47154daed1Smrg// temporarily chooses the second keyboard group (until it is
48154daed1Smrg// released).  If you use this map, you would declare you keyboard as
49154daed1Smrg// pc101 or pc102 instead of pc104 or pc105.
50154daed1Smrgpartial modifier_keys
51154daed1Smrgxkb_symbols "rwin_switch" {
52154daed1Smrg  key <RWIN> {
53154daed1Smrg    symbols[Group1] = [ Mode_switch, Multi_key ],
54154daed1Smrg    virtualMods= AltGr
55154daed1Smrg    };
56154daed1Smrg};
57154daed1Smrg
58154daed1Smrg// Right Ctrl key temporary chooses the second keyboard group.
59154daed1Smrg// Needed mainly for Canadian keyboard
60154daed1Smrgpartial modifier_keys
61154daed1Smrgxkb_symbols "rctrl_switch" {
62154daed1Smrg    key <RCTL>  {
63154daed1Smrg        symbols[Group1]= [ Mode_switch ]
64154daed1Smrg    };
65154daed1Smrg};
66154daed1Smrg
67154daed1Smrg// using the group(toggle) map, pressing the right alt key switches to
68154daed1Smrg// the next sequential group (until the next explicit group change).
69154daed1Smrgpartial modifier_keys 
70154daed1Smrgxkb_symbols "toggle" {
71154daed1Smrg    virtual_modifiers AltGr;
72154daed1Smrg    key <RALT>	{	
73154daed1Smrg	symbols[Group1]= [	ISO_Next_Group	],
74154daed1Smrg	virtualMods= AltGr
75154daed1Smrg    };
76154daed1Smrg};
77154daed1Smrg
78154daed1Smrg// using the group(shifts_toggle) map, pressing both shift keys together
79154daed1Smrg// locks the next or previous sequential keyboard group 
80154daed1Smrg// (depending on which shift is pressed first - right or left, 
81154daed1Smrg// correspongingly)
82154daed1Smrgpartial modifier_keys 
83154daed1Smrgxkb_symbols "shifts_toggle" {
84154daed1Smrg    key <LFSH>	{	[	Shift_L,	ISO_Prev_Group ]	};
85154daed1Smrg    key <RTSH>	{	[	Shift_R,	ISO_Next_Group ]	};
86154daed1Smrg};
87154daed1Smrg
88154daed1Smrg// using the group(ctrl_shift_toggle) map, pressing:
89154daed1Smrg//     Control_L+Shift_L locks the previous group
90154daed1Smrg//     Control_R+Shift_R locks the next group
91154daed1Smrg// If you have two groups and group wrap is enabled, the effect is
92154daed1Smrg// indistinguishable.
93154daed1Smrgpartial modifier_keys 
94154daed1Smrgxkb_symbols "ctrl_shift_toggle" {
95154daed1Smrg    key <LFSH> {
96154daed1Smrg	type[Group1]="PC_CONTROL_LEVEL2",
97154daed1Smrg	symbols[Group1]= [ Shift_L,	ISO_Prev_Group ]
98154daed1Smrg    };
99154daed1Smrg    key <RTSH> {
100154daed1Smrg	type[Group1]="PC_CONTROL_LEVEL2",
101154daed1Smrg	symbols[Group1]= [ Shift_R,	ISO_Next_Group ]
102154daed1Smrg    };
103154daed1Smrg    key <LCTL>	{	[	Control_L,	ISO_Prev_Group ]	};
104154daed1Smrg    key <RCTL>	{	[	Control_R,	ISO_Next_Group ]	};
105154daed1Smrg};
106154daed1Smrg
107154daed1Smrg// using the group(lctrl_lshift_toggle) map, pressing:
108154daed1Smrg//     Control_L+Shift_L locks the next group
109154daed1Smrg// If you have two groups and group wrap is enabled, the effect is
110154daed1Smrg// indistinguishable.
111154daed1Smrgpartial modifier_keys 
112154daed1Smrgxkb_symbols "lctrl_lshift_toggle" {
113154daed1Smrg    key <LFSH> {
114154daed1Smrg	type[Group1]="PC_CONTROL_LEVEL2",
115154daed1Smrg	symbols[Group1]= [ Shift_L,	ISO_Next_Group ]
116154daed1Smrg    };
117154daed1Smrg    key <LCTL>	{	[	Control_L,	ISO_Next_Group ]	};
118154daed1Smrg};
119154daed1Smrg
120c067fea9Sghen// using the group(rctrl_rshift_toggle) map, pressing:
121c067fea9Sghen//     Control_R+Shift_R locks the next group
122c067fea9Sghen// If you have two groups and group wrap is enabled, the effect is
123c067fea9Sghen// indistinguishable.
124c067fea9Sghenpartial modifier_keys
125c067fea9Sghenxkb_symbols "rctrl_rshift_toggle" {
126c067fea9Sghen    key <RTSH> {
127c067fea9Sghen    type[Group1]="PC_CONTROL_LEVEL2",
128c067fea9Sghen    symbols[Group1]= [ Shift_R, ISO_Next_Group ]
129c067fea9Sghen    };
130c067fea9Sghen    key <RCTL>  {   [   Control_R,  ISO_Next_Group ]    };
131c067fea9Sghen};
132c067fea9Sghen
133154daed1Smrg// using the group(shift_caps_toggle) map, pressing:
134154daed1Smrg//     Shift+Caps Lock toggles group
135154daed1Smrgpartial modifier_keys
136154daed1Smrgxkb_symbols "shift_caps_toggle" {
137154daed1Smrg    key	<CAPS> {	[  Caps_Lock,		ISO_Next_Group	]	};
138154daed1Smrg};
139154daed1Smrg
140154daed1Smrg// using the group(shift_caps_switch) map, pressing:
141154daed1Smrg// Caps Lock selects the first group
142154daed1Smrg// Shift+Caps Lock selects the last group
143154daed1Smrgpartial modifier_keys
144154daed1Smrgxkb_symbols "shift_caps_switch" {
145154daed1Smrg    key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] };
146154daed1Smrg};
147154daed1Smrg
148c067fea9Sghen// using the group(win_menu_switch) map, pressing:
149c067fea9Sghen// LWIN selects the first group
150c067fea9Sghen// RWIN or MENU selects the last group
151c067fea9Sghenpartial modifier_keys
152c067fea9Sghenxkb_symbols "win_menu_switch" {
153c067fea9Sghen    virtual_modifiers AltGr;
154c067fea9Sghen    key <LWIN> {
155c067fea9Sghen        virtualMods= AltGr,
156c067fea9Sghen        symbols[Group1] = [ ISO_First_Group ]
157c067fea9Sghen    };
158c067fea9Sghen    key <MENU> {
159c067fea9Sghen        virtualMods= AltGr,
160c067fea9Sghen        symbols[Group1] = [ ISO_Last_Group ]
161c067fea9Sghen    };
162c067fea9Sghen    key <RWIN> {
163c067fea9Sghen        virtualMods= AltGr,
164c067fea9Sghen        symbols[Group1] = [ ISO_Last_Group ]
165c067fea9Sghen    };
166c067fea9Sghen};
167c067fea9Sghen
168c067fea9Sghen// using the group(lctrl_rctrl_switch) map, pressing:
169c067fea9Sghen// Left Control selects the first group
170c067fea9Sghen// Right Control selects the last group
171c067fea9Sghenpartial modifier_keys
172c067fea9Sghenxkb_symbols "lctrl_rctrl_switch" {
173c067fea9Sghen    virtual_modifiers AltGr;
174c067fea9Sghen    key <LCTL> {
175c067fea9Sghen        virtualMods= AltGr,
176c067fea9Sghen        symbols[Group1] = [ ISO_First_Group ]
177c067fea9Sghen    };
178c067fea9Sghen    key <RCTL> {
179c067fea9Sghen        virtualMods= AltGr,
180c067fea9Sghen        symbols[Group1] = [ ISO_Last_Group ]
181c067fea9Sghen    };
182c067fea9Sghen};
183c067fea9Sghen
184154daed1Smrg// using the group(ctrl_alt_toggle) map, pressing:
185154daed1Smrg//     Control_L+Alt_L locks the previous group
186154daed1Smrg//     Control_R+Alt_R locks the next group
187154daed1Smrg// If you have two groups and group wrap is enabled, the effect is
188154daed1Smrg// indistinguishable.
189154daed1Smrgpartial modifier_keys 
190154daed1Smrgxkb_symbols "ctrl_alt_toggle" {
191154daed1Smrg    virtual_modifiers Alt;
192154daed1Smrg    key <LALT> {
193154daed1Smrg	type[Group1]="PC_CONTROL_LEVEL2",
194154daed1Smrg	symbols[Group1]= [ NoSymbol,	ISO_Prev_Group ],
195154daed1Smrg	virtualMods= Alt
196154daed1Smrg    };
197154daed1Smrg    key <RALT> {
198154daed1Smrg	type[Group1]="PC_CONTROL_LEVEL2",
199154daed1Smrg	symbols[Group1]= [ NoSymbol,	ISO_Next_Group ],
200154daed1Smrg	virtualMods= Alt
201154daed1Smrg    };
202154daed1Smrg    key <LCTL> {
203154daed1Smrg	type[Group1]="PC_ALT_LEVEL2",
204154daed1Smrg	symbols[Group1]= [ Control_L,	ISO_Prev_Group ]
205154daed1Smrg    };
206154daed1Smrg    key <RCTL> {
207154daed1Smrg	type[Group1]="PC_ALT_LEVEL2",
208154daed1Smrg	symbols[Group1]= [ Control_R,	ISO_Next_Group ]
209154daed1Smrg    };
210154daed1Smrg};
211154daed1Smrg
212154daed1Smrg// using the group(alt_shift_toggle) map, pressing:
213154daed1Smrg//     Shift_L+Alt_L locks the previous group
214154daed1Smrg//     Shift_R+Alt_R locks the next group
215154daed1Smrg// If you have two groups and group wrap is enabled, the effect is
216154daed1Smrg// indistinguishable.
217154daed1Smrgpartial modifier_keys 
218154daed1Smrgxkb_symbols "alt_shift_toggle" {
219154daed1Smrg    virtual_modifiers Alt;
220154daed1Smrg    key <LALT> {
221154daed1Smrg	symbols[Group1]= [ NoSymbol,	ISO_Prev_Group ],
222154daed1Smrg	virtualMods= Alt
223154daed1Smrg    };
224154daed1Smrg    key <RALT> {
225154daed1Smrg	symbols[Group1]= [ NoSymbol,	ISO_Next_Group ],
226154daed1Smrg	virtualMods= Alt
227154daed1Smrg    };
228154daed1Smrg    key <LFSH> {
229154daed1Smrg	type[Group1]="PC_ALT_LEVEL2",
230154daed1Smrg	symbols[Group1]= [ Shift_L,	ISO_Prev_Group ]
231154daed1Smrg    };
232154daed1Smrg    key <RTSH> {
233154daed1Smrg	type[Group1]="PC_ALT_LEVEL2",
234154daed1Smrg	symbols[Group1]= [ Shift_R,	ISO_Next_Group ]
235154daed1Smrg    };
236154daed1Smrg};
237154daed1Smrg
238154daed1Smrg// using the group(menu_toggle) map, pressing:
239154daed1Smrg//     Menu key toggles groups
240154daed1Smrg//     Shift+Menu acts as Menu
241154daed1Smrgpartial modifier_keys
242154daed1Smrgxkb_symbols "menu_toggle" {
243154daed1Smrg    key	<MENU> {	[  ISO_Next_Group,	 Menu	]	};
244154daed1Smrg};
245154daed1Smrg
246154daed1Smrg// using the group(lwin_toggle) map, pressing the left Windows' logo key
247154daed1Smrg// toggles groups.  If you use this map, you would declare you keyboard
248154daed1Smrg// as pc101 or pc102 instead of pc104 or pc105.
249154daed1Smrgpartial modifier_keys
250154daed1Smrgxkb_symbols "lwin_toggle" {
251154daed1Smrg  virtual_modifiers AltGr;
252154daed1Smrg  key <LWIN> {
253154daed1Smrg    virtualMods= AltGr,
254154daed1Smrg    symbols[Group1] = [ ISO_Next_Group ]
255154daed1Smrg    };
256154daed1Smrg};
257154daed1Smrg
258154daed1Smrg// using the group(rwin_toggle) map, pressing the right Windows' logo key
259154daed1Smrg// toggles groups.  If you use this map, you would declare you keyboard
260154daed1Smrg// as pc101 or pc102 instead of pc104 or pc105.
261154daed1Smrgpartial modifier_keys
262154daed1Smrgxkb_symbols "rwin_toggle" {
263154daed1Smrg  virtual_modifiers AltGr;
264154daed1Smrg  key <RWIN> {
265154daed1Smrg    virtualMods= AltGr,
266154daed1Smrg    symbols[Group1] = [ ISO_Next_Group ]
267154daed1Smrg    };
268154daed1Smrg};
269154daed1Smrg
270154daed1Smrg// Both Ctrls pressed together toggle group
271154daed1Smrgpartial modifier_keys
272154daed1Smrgxkb_symbols "ctrls_toggle" {
273154daed1Smrg  virtual_modifiers LControl, RControl;
274154daed1Smrg    key <LCTL> {
275154daed1Smrg	type[Group1]="PC_RCONTROL_LEVEL2",
276154daed1Smrg	symbols[Group1]= [ NoSymbol,	ISO_Prev_Group ],
277154daed1Smrg	virtualMods= LControl
278154daed1Smrg    };
279154daed1Smrg    key <RCTL> {
280154daed1Smrg	type[Group1]="PC_LCONTROL_LEVEL2",
281154daed1Smrg	symbols[Group1]= [ NoSymbol,	ISO_Next_Group ],
282154daed1Smrg	virtualMods= RControl
283154daed1Smrg    };
284154daed1Smrg};
285154daed1Smrg
286154daed1Smrg// Both Alts pressed together toggle group
287154daed1Smrgpartial modifier_keys
288154daed1Smrgxkb_symbols "alts_toggle" {
289154daed1Smrg  virtual_modifiers LAlt, RAlt;
290154daed1Smrg    key <LALT> {
291154daed1Smrg	type[Group1]="PC_RALT_LEVEL2",
292154daed1Smrg	symbols[Group1]= [ NoSymbol,	ISO_Prev_Group ],
293154daed1Smrg	virtualMods= LAlt
294154daed1Smrg    };
295154daed1Smrg    key <RALT> {
296154daed1Smrg	type[Group1]="PC_LALT_LEVEL2",
297154daed1Smrg	symbols[Group1]= [ NoSymbol,	ISO_Next_Group ],
298154daed1Smrg	virtualMods= RAlt
299154daed1Smrg    };
300154daed1Smrg};
301154daed1Smrg
302154daed1Smrg// Left Shift key toggles group
303154daed1Smrgpartial modifier_keys
304154daed1Smrgxkb_symbols "lshift_toggle" {
305154daed1Smrg  virtual_modifiers AltGr;
306154daed1Smrg    key <LFSH>	{	
307154daed1Smrg	symbols[Group1]= [	ISO_Next_Group	],
308154daed1Smrg	virtualMods= AltGr
309154daed1Smrg    };
310154daed1Smrg};
311154daed1Smrg
312154daed1Smrg// Right Shift key toggles group
313154daed1Smrgpartial modifier_keys
314154daed1Smrgxkb_symbols "rshift_toggle" {
315154daed1Smrg  virtual_modifiers AltGr;
316154daed1Smrg    key <RTSH>	{	
317154daed1Smrg	symbols[Group1]= [	ISO_Next_Group	],
318154daed1Smrg	virtualMods= AltGr
319154daed1Smrg    };
320154daed1Smrg};
321154daed1Smrg
322154daed1Smrg// Left Alt key toggles group
323154daed1Smrgpartial modifier_keys
324154daed1Smrgxkb_symbols "lalt_toggle" {
325154daed1Smrg  virtual_modifiers AltGr;
326154daed1Smrg    key <LALT>	{	
327154daed1Smrg	symbols[Group1]= [	ISO_Next_Group	],
328154daed1Smrg	virtualMods= AltGr
329154daed1Smrg    };
330154daed1Smrg};
331154daed1Smrg
332154daed1Smrg// Left Ctrl key toggles group
333154daed1Smrgpartial modifier_keys
334154daed1Smrgxkb_symbols "lctrl_toggle" {
335154daed1Smrg  virtual_modifiers AltGr;
336154daed1Smrg    key <LCTL>	{	
337154daed1Smrg	symbols[Group1]= [	ISO_Next_Group	],
338154daed1Smrg	virtualMods= AltGr
339154daed1Smrg    };
340154daed1Smrg};
341154daed1Smrg
342154daed1Smrg// Right Ctrl key toggles group
343154daed1Smrgpartial modifier_keys
344154daed1Smrgxkb_symbols "rctrl_toggle" {
345154daed1Smrg  virtual_modifiers AltGr;
346154daed1Smrg    key <RCTL>	{	
347154daed1Smrg	symbols[Group1]= [	ISO_Next_Group	],
348154daed1Smrg	virtualMods= AltGr
349154daed1Smrg    };
350154daed1Smrg};
351154daed1Smrg
352154daed1Smrg// using the group(alt_caps_toggle) map, pressing:
353154daed1Smrg//     Alt+Caps Lock toggles group
354154daed1Smrg//     Caps Lock toggles caps lock
355154daed1Smrgpartial modifier_keys
356154daed1Smrgxkb_symbols "alt_caps_toggle" {
357154daed1Smrg    key        <CAPS> {
358154daed1Smrg       type="PC_ALT_LEVEL2",
359154daed1Smrg       symbols[Group1]= [  Caps_Lock,  ISO_Next_Group]
360154daed1Smrg    };
361154daed1Smrg};
362154daed1Smrg
363154daed1Smrgpartial hidden modifier_keys
364154daed1Smrgxkb_symbols "olpc" {
365154daed1Smrg  key <I219>  { [ ISO_Next_Group, ISO_Prev_Group ] };
366154daed1Smrg};
367154daed1Smrg
368c067fea9Sghenpartial modifier_keys
369c067fea9Sghenxkb_symbols "alt_space_toggle" {
370c067fea9Sghen    key <SPCE> {
371c067fea9Sghen    type[Group1]="PC_ALT_LEVEL2",
372c067fea9Sghen    symbols[Group1]= [ space,   ISO_Next_Group ]
373c067fea9Sghen    };
374c067fea9Sghen};
375c067fea9Sghen
376c067fea9Sghen// using the group(sclk_toggle) map, pressing the Scroll Lock key
377c067fea9Sghen// toggles groups.
378c067fea9Sghenpartial modifier_keys
379c067fea9Sghenxkb_symbols "sclk_toggle" {
380c067fea9Sghen  virtual_modifiers AltGr;
381c067fea9Sghen  key <SCLK> {
382c067fea9Sghen    virtualMods= AltGr,
383c067fea9Sghen    symbols[Group1] = [ ISO_Next_Group ]
384c067fea9Sghen    };
385c067fea9Sghen};
386c067fea9Sghen
387bfd7cbc1Smrg// Control_L+Win_L locks the first group (presumably Lat).
388bfd7cbc1Smrg// Control_R+Menu locks the second group (presumably Rus).
389bfd7cbc1Smrgpartial modifier_keys
390bfd7cbc1Smrgxkb_symbols "lctrl_lwin_rctrl_menu" {
391bfd7cbc1Smrg    key <LWIN> {
392bfd7cbc1Smrg        type[ Group1 ]    = "PC_CONTROL_LEVEL2",
393bfd7cbc1Smrg        symbols[ Group1 ] = [ Super_L,    ISO_First_Group ]
394bfd7cbc1Smrg    };
395bfd7cbc1Smrg    key <MENU> {
396bfd7cbc1Smrg        type[ Group1 ]    = "PC_CONTROL_LEVEL2",
397bfd7cbc1Smrg        symbols[ Group1 ] = [ Menu,       ISO_Last_Group ]
398bfd7cbc1Smrg    };
399bfd7cbc1Smrg}; // lctrl_lwin_rctrl_menu
400