group revision c067fea9
1// $XKeyboardConfig$
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    include "group(lwin_switch)"
34    include "group(rwin_switch)"
35};
36
37// using the group(lwin_switch) map, the left Windows' logo key
38// temporarily chooses the second keyboard group (until it is
39// released).  If you use this map, you would declare you keyboard as
40// pc101 or pc102 instead of pc104 or pc105.
41partial modifier_keys
42xkb_symbols "lwin_switch" {
43  key <LWIN> {
44    symbols[Group1] = [ Mode_switch, Multi_key ],
45    virtualMods= AltGr
46    };
47};
48
49// using the group(rwin_switch) map, the right Windows' logo key
50// temporarily chooses the second keyboard group (until it is
51// released).  If you use this map, you would declare you keyboard as
52// pc101 or pc102 instead of pc104 or pc105.
53partial modifier_keys
54xkb_symbols "rwin_switch" {
55  key <RWIN> {
56    symbols[Group1] = [ Mode_switch, Multi_key ],
57    virtualMods= AltGr
58    };
59};
60
61// Right Ctrl key temporary chooses the second keyboard group.
62// Needed mainly for Canadian keyboard
63partial modifier_keys
64xkb_symbols "rctrl_switch" {
65    key <RCTL>  {
66        symbols[Group1]= [ Mode_switch ]
67    };
68};
69
70// using the group(toggle) map, pressing the right alt key switches to
71// the next sequential group (until the next explicit group change).
72partial modifier_keys 
73xkb_symbols "toggle" {
74    virtual_modifiers AltGr;
75    key <RALT>	{	
76	symbols[Group1]= [	ISO_Next_Group	],
77	virtualMods= AltGr
78    };
79};
80
81// using the group(shifts_toggle) map, pressing both shift keys together
82// locks the next or previous sequential keyboard group 
83// (depending on which shift is pressed first - right or left, 
84// correspongingly)
85partial modifier_keys 
86xkb_symbols "shifts_toggle" {
87    key <LFSH>	{	[	Shift_L,	ISO_Prev_Group ]	};
88    key <RTSH>	{	[	Shift_R,	ISO_Next_Group ]	};
89};
90
91// using the group(ctrl_shift_toggle) map, pressing:
92//     Control_L+Shift_L locks the previous group
93//     Control_R+Shift_R locks the next group
94// If you have two groups and group wrap is enabled, the effect is
95// indistinguishable.
96partial modifier_keys 
97xkb_symbols "ctrl_shift_toggle" {
98    key <LFSH> {
99	type[Group1]="PC_CONTROL_LEVEL2",
100	symbols[Group1]= [ Shift_L,	ISO_Prev_Group ]
101    };
102    key <RTSH> {
103	type[Group1]="PC_CONTROL_LEVEL2",
104	symbols[Group1]= [ Shift_R,	ISO_Next_Group ]
105    };
106    key <LCTL>	{	[	Control_L,	ISO_Prev_Group ]	};
107    key <RCTL>	{	[	Control_R,	ISO_Next_Group ]	};
108};
109
110// using the group(lctrl_lshift_toggle) map, pressing:
111//     Control_L+Shift_L locks the next group
112// If you have two groups and group wrap is enabled, the effect is
113// indistinguishable.
114partial modifier_keys 
115xkb_symbols "lctrl_lshift_toggle" {
116    key <LFSH> {
117	type[Group1]="PC_CONTROL_LEVEL2",
118	symbols[Group1]= [ Shift_L,	ISO_Next_Group ]
119    };
120    key <LCTL>	{	[	Control_L,	ISO_Next_Group ]	};
121};
122
123// using the group(rctrl_rshift_toggle) map, pressing:
124//     Control_R+Shift_R locks the next group
125// If you have two groups and group wrap is enabled, the effect is
126// indistinguishable.
127partial modifier_keys
128xkb_symbols "rctrl_rshift_toggle" {
129    key <RTSH> {
130    type[Group1]="PC_CONTROL_LEVEL2",
131    symbols[Group1]= [ Shift_R, ISO_Next_Group ]
132    };
133    key <RCTL>  {   [   Control_R,  ISO_Next_Group ]    };
134};
135
136// using the group(shift_caps_toggle) map, pressing:
137//     Shift+Caps Lock toggles group
138partial modifier_keys
139xkb_symbols "shift_caps_toggle" {
140    key	<CAPS> {	[  Caps_Lock,		ISO_Next_Group	]	};
141};
142
143// using the group(shift_caps_switch) map, pressing:
144// Caps Lock selects the first group
145// Shift+Caps Lock selects the last group
146partial modifier_keys
147xkb_symbols "shift_caps_switch" {
148    key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] };
149};
150
151// using the group(win_menu_switch) map, pressing:
152// LWIN selects the first group
153// RWIN or MENU selects the last group
154partial modifier_keys
155xkb_symbols "win_menu_switch" {
156    virtual_modifiers AltGr;
157    key <LWIN> {
158        virtualMods= AltGr,
159        symbols[Group1] = [ ISO_First_Group ]
160    };
161    key <MENU> {
162        virtualMods= AltGr,
163        symbols[Group1] = [ ISO_Last_Group ]
164    };
165    key <RWIN> {
166        virtualMods= AltGr,
167        symbols[Group1] = [ ISO_Last_Group ]
168    };
169};
170
171// using the group(lctrl_rctrl_switch) map, pressing:
172// Left Control selects the first group
173// Right Control selects the last group
174partial modifier_keys
175xkb_symbols "lctrl_rctrl_switch" {
176    virtual_modifiers AltGr;
177    key <LCTL> {
178        virtualMods= AltGr,
179        symbols[Group1] = [ ISO_First_Group ]
180    };
181    key <RCTL> {
182        virtualMods= AltGr,
183        symbols[Group1] = [ ISO_Last_Group ]
184    };
185};
186
187// using the group(ctrl_alt_toggle) map, pressing:
188//     Control_L+Alt_L locks the previous group
189//     Control_R+Alt_R locks the next group
190// If you have two groups and group wrap is enabled, the effect is
191// indistinguishable.
192partial modifier_keys 
193xkb_symbols "ctrl_alt_toggle" {
194    virtual_modifiers Alt;
195    key <LALT> {
196	type[Group1]="PC_CONTROL_LEVEL2",
197	symbols[Group1]= [ NoSymbol,	ISO_Prev_Group ],
198	virtualMods= Alt
199    };
200    key <RALT> {
201	type[Group1]="PC_CONTROL_LEVEL2",
202	symbols[Group1]= [ NoSymbol,	ISO_Next_Group ],
203	virtualMods= Alt
204    };
205    key <LCTL> {
206	type[Group1]="PC_ALT_LEVEL2",
207	symbols[Group1]= [ Control_L,	ISO_Prev_Group ]
208    };
209    key <RCTL> {
210	type[Group1]="PC_ALT_LEVEL2",
211	symbols[Group1]= [ Control_R,	ISO_Next_Group ]
212    };
213};
214
215// using the group(alt_shift_toggle) map, pressing:
216//     Shift_L+Alt_L locks the previous group
217//     Shift_R+Alt_R locks the next group
218// If you have two groups and group wrap is enabled, the effect is
219// indistinguishable.
220partial modifier_keys 
221xkb_symbols "alt_shift_toggle" {
222    virtual_modifiers Alt;
223    key <LALT> {
224	symbols[Group1]= [ NoSymbol,	ISO_Prev_Group ],
225	virtualMods= Alt
226    };
227    key <RALT> {
228	symbols[Group1]= [ NoSymbol,	ISO_Next_Group ],
229	virtualMods= Alt
230    };
231    key <LFSH> {
232	type[Group1]="PC_ALT_LEVEL2",
233	symbols[Group1]= [ Shift_L,	ISO_Prev_Group ]
234    };
235    key <RTSH> {
236	type[Group1]="PC_ALT_LEVEL2",
237	symbols[Group1]= [ Shift_R,	ISO_Next_Group ]
238    };
239};
240
241// using the group(menu_toggle) map, pressing:
242//     Menu key toggles groups
243//     Shift+Menu acts as Menu
244partial modifier_keys
245xkb_symbols "menu_toggle" {
246    key	<MENU> {	[  ISO_Next_Group,	 Menu	]	};
247};
248
249// using the group(lwin_toggle) map, pressing the left Windows' logo key
250// toggles groups.  If you use this map, you would declare you keyboard
251// as pc101 or pc102 instead of pc104 or pc105.
252partial modifier_keys
253xkb_symbols "lwin_toggle" {
254  virtual_modifiers AltGr;
255  key <LWIN> {
256    virtualMods= AltGr,
257    symbols[Group1] = [ ISO_Next_Group ]
258    };
259};
260
261// using the group(rwin_toggle) map, pressing the right Windows' logo key
262// toggles groups.  If you use this map, you would declare you keyboard
263// as pc101 or pc102 instead of pc104 or pc105.
264partial modifier_keys
265xkb_symbols "rwin_toggle" {
266  virtual_modifiers AltGr;
267  key <RWIN> {
268    virtualMods= AltGr,
269    symbols[Group1] = [ ISO_Next_Group ]
270    };
271};
272
273// Both Ctrls pressed together toggle group
274partial modifier_keys
275xkb_symbols "ctrls_toggle" {
276  virtual_modifiers LControl, RControl;
277    key <LCTL> {
278	type[Group1]="PC_RCONTROL_LEVEL2",
279	symbols[Group1]= [ NoSymbol,	ISO_Prev_Group ],
280	virtualMods= LControl
281    };
282    key <RCTL> {
283	type[Group1]="PC_LCONTROL_LEVEL2",
284	symbols[Group1]= [ NoSymbol,	ISO_Next_Group ],
285	virtualMods= RControl
286    };
287};
288
289// Both Alts pressed together toggle group
290partial modifier_keys
291xkb_symbols "alts_toggle" {
292  virtual_modifiers LAlt, RAlt;
293    key <LALT> {
294	type[Group1]="PC_RALT_LEVEL2",
295	symbols[Group1]= [ NoSymbol,	ISO_Prev_Group ],
296	virtualMods= LAlt
297    };
298    key <RALT> {
299	type[Group1]="PC_LALT_LEVEL2",
300	symbols[Group1]= [ NoSymbol,	ISO_Next_Group ],
301	virtualMods= RAlt
302    };
303};
304
305// Left Shift key toggles group
306partial modifier_keys
307xkb_symbols "lshift_toggle" {
308  virtual_modifiers AltGr;
309    key <LFSH>	{	
310	symbols[Group1]= [	ISO_Next_Group	],
311	virtualMods= AltGr
312    };
313};
314
315// Right Shift key toggles group
316partial modifier_keys
317xkb_symbols "rshift_toggle" {
318  virtual_modifiers AltGr;
319    key <RTSH>	{	
320	symbols[Group1]= [	ISO_Next_Group	],
321	virtualMods= AltGr
322    };
323};
324
325// Left Alt key toggles group
326partial modifier_keys
327xkb_symbols "lalt_toggle" {
328  virtual_modifiers AltGr;
329    key <LALT>	{	
330	symbols[Group1]= [	ISO_Next_Group	],
331	virtualMods= AltGr
332    };
333};
334
335// Left Ctrl key toggles group
336partial modifier_keys
337xkb_symbols "lctrl_toggle" {
338  virtual_modifiers AltGr;
339    key <LCTL>	{	
340	symbols[Group1]= [	ISO_Next_Group	],
341	virtualMods= AltGr
342    };
343};
344
345// Right Ctrl key toggles group
346partial modifier_keys
347xkb_symbols "rctrl_toggle" {
348  virtual_modifiers AltGr;
349    key <RCTL>	{	
350	symbols[Group1]= [	ISO_Next_Group	],
351	virtualMods= AltGr
352    };
353};
354
355// using the group(alt_caps_toggle) map, pressing:
356//     Alt+Caps Lock toggles group
357//     Caps Lock toggles caps lock
358partial modifier_keys
359xkb_symbols "alt_caps_toggle" {
360    key        <CAPS> {
361       type="PC_ALT_LEVEL2",
362       symbols[Group1]= [  Caps_Lock,  ISO_Next_Group]
363    };
364};
365
366partial hidden modifier_keys
367xkb_symbols "olpc" {
368  key <I219>  { [ ISO_Next_Group, ISO_Prev_Group ] };
369};
370
371partial modifier_keys
372xkb_symbols "alt_space_toggle" {
373    key <SPCE> {
374    type[Group1]="PC_ALT_LEVEL2",
375    symbols[Group1]= [ space,   ISO_Next_Group ]
376    };
377};
378
379// using the group(sclk_toggle) map, pressing the Scroll Lock key
380// toggles groups.
381partial modifier_keys
382xkb_symbols "sclk_toggle" {
383  virtual_modifiers AltGr;
384  key <SCLK> {
385    virtualMods= AltGr,
386    symbols[Group1] = [ ISO_Next_Group ]
387    };
388};
389
390