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