group revision 5a35480e
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(shift_caps_toggle) map, pressing:
124//     Shift+Caps Lock toggles group
125partial modifier_keys
126xkb_symbols "shift_caps_toggle" {
127    key	<CAPS> {	[  Caps_Lock,		ISO_Next_Group	]	};
128};
129
130// using the group(shift_caps_switch) map, pressing:
131// Caps Lock selects the first group
132// Shift+Caps Lock selects the last group
133partial modifier_keys
134xkb_symbols "shift_caps_switch" {
135    key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] };
136};
137
138// using the group(ctrl_alt_toggle) map, pressing:
139//     Control_L+Alt_L locks the previous group
140//     Control_R+Alt_R locks the next group
141// If you have two groups and group wrap is enabled, the effect is
142// indistinguishable.
143partial modifier_keys 
144xkb_symbols "ctrl_alt_toggle" {
145    virtual_modifiers Alt;
146    key <LALT> {
147	type[Group1]="PC_CONTROL_LEVEL2",
148	symbols[Group1]= [ NoSymbol,	ISO_Prev_Group ],
149	virtualMods= Alt
150    };
151    key <RALT> {
152	type[Group1]="PC_CONTROL_LEVEL2",
153	symbols[Group1]= [ NoSymbol,	ISO_Next_Group ],
154	virtualMods= Alt
155    };
156    key <LCTL> {
157	type[Group1]="PC_ALT_LEVEL2",
158	symbols[Group1]= [ Control_L,	ISO_Prev_Group ]
159    };
160    key <RCTL> {
161	type[Group1]="PC_ALT_LEVEL2",
162	symbols[Group1]= [ Control_R,	ISO_Next_Group ]
163    };
164};
165
166// using the group(alt_shift_toggle) map, pressing:
167//     Shift_L+Alt_L locks the previous group
168//     Shift_R+Alt_R locks the next group
169// If you have two groups and group wrap is enabled, the effect is
170// indistinguishable.
171partial modifier_keys 
172xkb_symbols "alt_shift_toggle" {
173    virtual_modifiers Alt;
174    key <LALT> {
175	symbols[Group1]= [ NoSymbol,	ISO_Prev_Group ],
176	virtualMods= Alt
177    };
178    key <RALT> {
179	symbols[Group1]= [ NoSymbol,	ISO_Next_Group ],
180	virtualMods= Alt
181    };
182    key <LFSH> {
183	type[Group1]="PC_ALT_LEVEL2",
184	symbols[Group1]= [ Shift_L,	ISO_Prev_Group ]
185    };
186    key <RTSH> {
187	type[Group1]="PC_ALT_LEVEL2",
188	symbols[Group1]= [ Shift_R,	ISO_Next_Group ]
189    };
190};
191
192// using the group(menu_toggle) map, pressing:
193//     Menu key toggles groups
194//     Shift+Menu acts as Menu
195partial modifier_keys
196xkb_symbols "menu_toggle" {
197    key	<MENU> {	[  ISO_Next_Group,	 Menu	]	};
198};
199
200// using the group(lwin_toggle) map, pressing the left Windows' logo key
201// toggles groups.  If you use this map, you would declare you keyboard
202// as pc101 or pc102 instead of pc104 or pc105.
203partial modifier_keys
204xkb_symbols "lwin_toggle" {
205  virtual_modifiers AltGr;
206  key <LWIN> {
207    virtualMods= AltGr,
208    symbols[Group1] = [ ISO_Next_Group ]
209    };
210};
211
212// using the group(rwin_toggle) map, pressing the right Windows' logo key
213// toggles groups.  If you use this map, you would declare you keyboard
214// as pc101 or pc102 instead of pc104 or pc105.
215partial modifier_keys
216xkb_symbols "rwin_toggle" {
217  virtual_modifiers AltGr;
218  key <RWIN> {
219    virtualMods= AltGr,
220    symbols[Group1] = [ ISO_Next_Group ]
221    };
222};
223
224// Both Ctrls pressed together toggle group
225partial modifier_keys
226xkb_symbols "ctrls_toggle" {
227  virtual_modifiers LControl, RControl;
228    key <LCTL> {
229	type[Group1]="PC_RCONTROL_LEVEL2",
230	symbols[Group1]= [ NoSymbol,	ISO_Prev_Group ],
231	virtualMods= LControl
232    };
233    key <RCTL> {
234	type[Group1]="PC_LCONTROL_LEVEL2",
235	symbols[Group1]= [ NoSymbol,	ISO_Next_Group ],
236	virtualMods= RControl
237    };
238};
239
240// Both Alts pressed together toggle group
241partial modifier_keys
242xkb_symbols "alts_toggle" {
243  virtual_modifiers LAlt, RAlt;
244    key <LALT> {
245	type[Group1]="PC_RALT_LEVEL2",
246	symbols[Group1]= [ NoSymbol,	ISO_Prev_Group ],
247	virtualMods= LAlt
248    };
249    key <RALT> {
250	type[Group1]="PC_LALT_LEVEL2",
251	symbols[Group1]= [ NoSymbol,	ISO_Next_Group ],
252	virtualMods= RAlt
253    };
254};
255
256// Left Shift key toggles group
257partial modifier_keys
258xkb_symbols "lshift_toggle" {
259  virtual_modifiers AltGr;
260    key <LFSH>	{	
261	symbols[Group1]= [	ISO_Next_Group	],
262	virtualMods= AltGr
263    };
264};
265
266// Right Shift key toggles group
267partial modifier_keys
268xkb_symbols "rshift_toggle" {
269  virtual_modifiers AltGr;
270    key <RTSH>	{	
271	symbols[Group1]= [	ISO_Next_Group	],
272	virtualMods= AltGr
273    };
274};
275
276// Left Alt key toggles group
277partial modifier_keys
278xkb_symbols "lalt_toggle" {
279  virtual_modifiers AltGr;
280    key <LALT>	{	
281	symbols[Group1]= [	ISO_Next_Group	],
282	virtualMods= AltGr
283    };
284};
285
286// Left Ctrl key toggles group
287partial modifier_keys
288xkb_symbols "lctrl_toggle" {
289  virtual_modifiers AltGr;
290    key <LCTL>	{	
291	symbols[Group1]= [	ISO_Next_Group	],
292	virtualMods= AltGr
293    };
294};
295
296// Right Ctrl key toggles group
297partial modifier_keys
298xkb_symbols "rctrl_toggle" {
299  virtual_modifiers AltGr;
300    key <RCTL>	{	
301	symbols[Group1]= [	ISO_Next_Group	],
302	virtualMods= AltGr
303    };
304};
305
306// using the group(alt_caps_toggle) map, pressing:
307//     Alt+Caps Lock toggles group
308//     Caps Lock toggles caps lock
309partial modifier_keys
310xkb_symbols "alt_caps_toggle" {
311    key        <CAPS> {
312       type="PC_ALT_LEVEL2",
313       symbols[Group1]= [  Caps_Lock,  ISO_Next_Group]
314    };
315};
316
317partial hidden modifier_keys
318xkb_symbols "olpc" {
319  key <I219>  { [ ISO_Next_Group, ISO_Prev_Group ] };
320};
321
322