Fixed Shift-F10 behaviour
[xorg/xkeyboard-config] / symbols / group
1 // using the group(switch) map, the right alt key temporarily chooses 
2 // the second keyboard group (until it is released).
3 //
4 partial modifier_keys 
5 xkb_symbols "switch" {
6     key <RALT>  {       
7         symbols[Group1]= [      Mode_switch, Multi_key  ],
8         virtualMods= AltGr
9     };
10 };
11
12 // using the group(lswitch) map, the left alt key temporarily chooses
13 // the second keyboard group (until it is released).
14 //
15 partial modifier_keys 
16 xkb_symbols "lswitch" {
17     key <LALT>  {       
18         symbols[Group1]= [      Mode_switch, Multi_key  ],
19         virtualMods= AltGr
20     };
21 };
22
23
24 // using the group(win_switch) map, both Windows'logo keys temporarily
25 // choose the second keyboard group (until release).  If you use this
26 // map, you would declare you keyboard as pc101 or pc102 instead of
27 // pc104 or pc105.
28 partial modifier_keys
29 xkb_symbols "win_switch" {
30     include "group(lwin_switch)"
31     include "group(rwin_switch)"
32 };
33
34 // using the group(lwin_switch) map, the left Windows' logo key
35 // temporarily chooses the second keyboard group (until it is
36 // released).  If you use this map, you would declare you keyboard as
37 // pc101 or pc102 instead of pc104 or pc105.
38 partial modifier_keys
39 xkb_symbols "lwin_switch" {
40   key <LWIN> {
41     symbols[Group1] = [ Mode_switch, Multi_key ],
42     virtualMods= AltGr
43     };
44 };
45
46 // using the group(rwin_switch) map, the right Windows' logo key
47 // temporarily chooses the second keyboard group (until it is
48 // released).  If you use this map, you would declare you keyboard as
49 // pc101 or pc102 instead of pc104 or pc105.
50 partial modifier_keys
51 xkb_symbols "rwin_switch" {
52   key <RWIN> {
53     symbols[Group1] = [ Mode_switch, Multi_key ],
54     virtualMods= AltGr
55     };
56 };
57
58 // Right Ctrl key temporary chooses the second keyboard group.
59 // Needed mainly for Canadian keyboard
60 partial modifier_keys
61 xkb_symbols "rctrl_switch" {
62     key <RCTL>  {
63         symbols[Group1]= [ Mode_switch ]
64     };
65 };
66
67 // using the group(toggle) map, pressing the right alt key switches to
68 // the next sequential group (until the next explicit group change).
69 partial modifier_keys 
70 xkb_symbols "toggle" {
71     virtual_modifiers AltGr;
72     key <RALT>  {       
73         symbols[Group1]= [      ISO_Next_Group  ],
74         virtualMods= AltGr
75     };
76 };
77
78 // using the group(shifts_toggle) map, pressing both shift keys together
79 // locks the next or previous sequential keyboard group 
80 // (depending on which shift is pressed first - right or left, 
81 // correspongingly)
82 partial modifier_keys 
83 xkb_symbols "shifts_toggle" {
84     key <LFSH>  {       [       Shift_L,        ISO_Prev_Group ]        };
85     key <RTSH>  {       [       Shift_R,        ISO_Next_Group ]        };
86 };
87
88 // using the group(shift_caps_toggle) map, pressing:
89 //     Shift+Caps Lock toggles group
90 partial modifier_keys
91 xkb_symbols "shift_caps_toggle" {
92     key <CAPS> {        [  Caps_Lock,           ISO_Next_Group  ]       };
93 };
94
95 // using the group(shift_caps_switch) map, pressing:
96 // Caps Lock selects the first group
97 // Shift+Caps Lock selects the last group
98 partial modifier_keys
99 xkb_symbols "shift_caps_switch" {
100     key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] };
101 };
102
103 // using the group(win_menu_switch) map, pressing:
104 // LWIN selects the first group
105 // RWIN or MENU selects the last group
106 partial modifier_keys
107 xkb_symbols "win_menu_switch" {
108     virtual_modifiers AltGr;
109     key <LWIN> {
110         virtualMods= AltGr,
111         symbols[Group1] = [ ISO_First_Group ]
112     };
113     key <MENU> {
114         virtualMods= AltGr,
115         symbols[Group1] = [ ISO_Last_Group ]
116     };
117     key <RWIN> {
118         virtualMods= AltGr,
119         symbols[Group1] = [ ISO_Last_Group ]
120     };
121 };
122
123 // using the group(lctrl_rctrl_switch) map, pressing:
124 // Left Control selects the first group
125 // Right Control selects the last group
126 partial modifier_keys
127 xkb_symbols "lctrl_rctrl_switch" {
128     virtual_modifiers AltGr;
129     key <LCTL> {
130         virtualMods= AltGr,
131         symbols[Group1] = [ ISO_First_Group ]
132     };
133     key <RCTL> {
134         virtualMods= AltGr,
135         symbols[Group1] = [ ISO_Last_Group ]
136     };
137 };
138
139
140 //
141 // CTRL-SHIFT toggle section
142 //
143 partial modifier_keys 
144 xkb_symbols "lctrl_lshift_toggle" {
145     key <LFSH> {
146         type[Group1]="PC_CONTROL_LEVEL2",
147         symbols[Group1]= [ Shift_L, ISO_Next_Group ]
148     };
149     key <LCTL> { [ Control_L, ISO_Next_Group ] };
150 };
151
152 partial modifier_keys 
153 xkb_symbols "lctrl_lshift_toggle_rev" {
154     key <LFSH> {
155         type[Group1]="PC_CONTROL_LEVEL2",
156         symbols[Group1]= [ Shift_L, ISO_Prev_Group ]
157     };
158     key <LCTL> { [ Control_L, ISO_Prev_Group ] };
159 };
160
161 partial modifier_keys
162 xkb_symbols "rctrl_rshift_toggle" {
163     key <RTSH> {
164         type[Group1]="PC_CONTROL_LEVEL2",
165         symbols[Group1]= [ Shift_R, ISO_Next_Group ]
166     };
167     key <RCTL> { [ Control_R, ISO_Next_Group ] };
168 };
169
170 partial modifier_keys 
171 xkb_symbols "ctrl_shift_toggle" {
172     include "group(lctrl_lshift_toggle)"
173     include "group(rctrl_rshift_toggle)"
174 };
175
176 partial modifier_keys 
177 xkb_symbols "ctrl_shift_toggle_bidir" {
178     include "group(lctrl_lshift_toggle_rev)"
179     include "group(rctrl_rshift_toggle)"
180 };
181
182
183 //
184 // CTRL-ALT toggle section
185 //
186 partial modifier_keys
187 xkb_symbols "lctrl_lalt_toggle" {
188     virtual_modifiers Alt;
189     key <LALT> {
190         type[Group1]="PC_CONTROL_LEVEL2",
191         symbols[Group1]= [ NoSymbol,    ISO_Next_Group ],
192         virtualMods= Alt
193     };
194     key <LCTL> {
195         type[Group1]="PC_ALT_LEVEL2",
196         symbols[Group1]= [ Control_L,   ISO_Next_Group ]
197     };
198 };
199
200 partial modifier_keys
201 xkb_symbols "lctrl_lalt_toggle_rev" {
202     virtual_modifiers Alt;
203     key <LALT> {
204         type[Group1]="PC_CONTROL_LEVEL2",
205         symbols[Group1]= [ NoSymbol,    ISO_Prev_Group ],
206         virtualMods= Alt
207     };
208     key <LCTL> {
209         type[Group1]="PC_ALT_LEVEL2",
210         symbols[Group1]= [ Control_L,   ISO_Prev_Group ]
211     };
212 };
213
214 partial modifier_keys
215 xkb_symbols "rctrl_ralt_toggle" {
216     virtual_modifiers Alt;
217     key <RALT> {
218         type[Group1]="PC_CONTROL_LEVEL2",
219         symbols[Group1]= [ NoSymbol,    ISO_Next_Group ],
220         virtualMods= Alt
221     };
222     key <RCTL> {
223         type[Group1]="PC_ALT_LEVEL2",
224         symbols[Group1]= [ Control_R,   ISO_Next_Group ]
225     };
226 };
227
228 partial modifier_keys 
229 xkb_symbols "ctrl_alt_toggle" {
230     include "group(lctrl_lalt_toggle)"
231     include "group(rctrl_ralt_toggle)"
232 };
233
234 partial modifier_keys 
235 xkb_symbols "ctrl_alt_toggle_bidir" {
236     include "group(lctrl_lalt_toggle_rev)"
237     include "group(rctrl_ralt_toggle)"
238 };
239
240
241 //
242 // ALT-SHIFT toggle section
243 //
244 partial modifier_keys
245 xkb_symbols "lalt_lshift_toggle" {
246     virtual_modifiers Alt;
247     key <LALT> {
248         symbols[Group1]= [ NoSymbol,    ISO_Next_Group ],
249         virtualMods= Alt
250     };
251     key <LFSH> {
252         type[Group1]="PC_ALT_LEVEL2",
253         symbols[Group1]= [ Shift_L,     ISO_Next_Group ]
254     };
255 };
256
257 partial modifier_keys
258 xkb_symbols "lalt_lshift_toggle_rev" {
259     virtual_modifiers Alt;
260     key <LALT> {
261         symbols[Group1]= [ NoSymbol,    ISO_Prev_Group ],
262         virtualMods= Alt
263     };
264     key <LFSH> {
265         type[Group1]="PC_ALT_LEVEL2",
266         symbols[Group1]= [ Shift_L,     ISO_Prev_Group ]
267     };
268 };
269
270 partial modifier_keys
271 xkb_symbols "ralt_rshift_toggle" {
272     virtual_modifiers Alt;
273     key <RALT> {
274         symbols[Group1]= [ NoSymbol,    ISO_Next_Group ],
275         virtualMods= Alt
276     };
277     key <RTSH> {
278         type[Group1]="PC_ALT_LEVEL2",
279         symbols[Group1]= [ Shift_R,     ISO_Next_Group ]
280     };
281 };
282
283 partial modifier_keys 
284 xkb_symbols "alt_shift_toggle" {
285     include "group(lalt_lshift_toggle)"
286     include "group(ralt_rshift_toggle)"
287 };
288
289 partial modifier_keys 
290 xkb_symbols "alt_shift_toggle_bidir" {
291     include "group(lalt_lshift_toggle_rev)"
292     include "group(ralt_rshift_toggle)"
293 };
294
295
296 // using the group(menu_toggle) map, pressing:
297 //     Menu key toggles groups
298 //     Shift+Menu acts as Menu
299 partial modifier_keys
300 xkb_symbols "menu_toggle" {
301     key <MENU> {        [  ISO_Next_Group,       Menu   ]       };
302 };
303
304 // using the group(lwin_toggle) map, pressing the left Windows' logo key
305 // toggles groups.  If you use this map, you would declare you keyboard
306 // as pc101 or pc102 instead of pc104 or pc105.
307 partial modifier_keys
308 xkb_symbols "lwin_toggle" {
309   virtual_modifiers AltGr;
310   key <LWIN> {
311     virtualMods= AltGr,
312     symbols[Group1] = [ ISO_Next_Group ]
313     };
314 };
315
316 // using the group(rwin_toggle) map, pressing the right Windows' logo key
317 // toggles groups.  If you use this map, you would declare you keyboard
318 // as pc101 or pc102 instead of pc104 or pc105.
319 partial modifier_keys
320 xkb_symbols "rwin_toggle" {
321   virtual_modifiers AltGr;
322   key <RWIN> {
323     virtualMods= AltGr,
324     symbols[Group1] = [ ISO_Next_Group ]
325     };
326 };
327
328 // Both Ctrls pressed together toggle group
329 partial modifier_keys
330 xkb_symbols "ctrls_toggle" {
331   virtual_modifiers LControl, RControl;
332     key <LCTL> {
333         type[Group1]="PC_RCONTROL_LEVEL2",
334         symbols[Group1]= [ NoSymbol,    ISO_Prev_Group ],
335         virtualMods= LControl
336     };
337     key <RCTL> {
338         type[Group1]="PC_LCONTROL_LEVEL2",
339         symbols[Group1]= [ NoSymbol,    ISO_Next_Group ],
340         virtualMods= RControl
341     };
342 };
343
344 // Both Alts pressed together toggle group
345 partial modifier_keys
346 xkb_symbols "alts_toggle" {
347   virtual_modifiers LAlt, RAlt;
348     key <LALT> {
349         type[Group1]="PC_RALT_LEVEL2",
350         symbols[Group1]= [ NoSymbol,    ISO_Prev_Group ],
351         virtualMods= LAlt
352     };
353     key <RALT> {
354         type[Group1]="PC_LALT_LEVEL2",
355         symbols[Group1]= [ NoSymbol,    ISO_Next_Group ],
356         virtualMods= RAlt
357     };
358 };
359
360 // Left Shift key toggles group
361 partial modifier_keys
362 xkb_symbols "lshift_toggle" {
363   virtual_modifiers AltGr;
364     key <LFSH>  {       
365         symbols[Group1]= [      ISO_Next_Group  ],
366         virtualMods= AltGr
367     };
368 };
369
370 // Right Shift key toggles group
371 partial modifier_keys
372 xkb_symbols "rshift_toggle" {
373   virtual_modifiers AltGr;
374     key <RTSH>  {       
375         symbols[Group1]= [      ISO_Next_Group  ],
376         virtualMods= AltGr
377     };
378 };
379
380 // Left Alt key toggles group
381 partial modifier_keys
382 xkb_symbols "lalt_toggle" {
383   virtual_modifiers AltGr;
384     key <LALT>  {       
385         symbols[Group1]= [      ISO_Next_Group  ],
386         virtualMods= AltGr
387     };
388 };
389
390 // Left Ctrl key toggles group
391 partial modifier_keys
392 xkb_symbols "lctrl_toggle" {
393   virtual_modifiers AltGr;
394     key <LCTL>  {       
395         symbols[Group1]= [      ISO_Next_Group  ],
396         virtualMods= AltGr
397     };
398 };
399
400 // Right Ctrl key toggles group
401 partial modifier_keys
402 xkb_symbols "rctrl_toggle" {
403   virtual_modifiers AltGr;
404     key <RCTL>  {       
405         symbols[Group1]= [      ISO_Next_Group  ],
406         virtualMods= AltGr
407     };
408 };
409
410 // using the group(alt_caps_toggle) map, pressing:
411 //     Alt+Caps Lock toggles group
412 //     Caps Lock toggles caps lock
413 partial modifier_keys
414 xkb_symbols "alt_caps_toggle" {
415     key        <CAPS> {
416        type="PC_ALT_LEVEL2",
417        symbols[Group1]= [  Caps_Lock,  ISO_Next_Group]
418     };
419 };
420
421 partial hidden modifier_keys
422 xkb_symbols "olpc" {
423   key <I219>  { [ ISO_Next_Group, ISO_Prev_Group ] };
424 };
425
426 partial modifier_keys
427 xkb_symbols "alt_space_toggle" {
428     key <SPCE> {
429     type[Group1]="PC_ALT_LEVEL2",
430     symbols[Group1]= [ space,   ISO_Next_Group ]
431     };
432 };
433
434 // using the group(sclk_toggle) map, pressing the Scroll Lock key
435 // toggles groups.
436 partial modifier_keys
437 xkb_symbols "sclk_toggle" {
438   virtual_modifiers AltGr;
439   key <SCLK> {
440     virtualMods= AltGr,
441     symbols[Group1] = [ ISO_Next_Group ]
442     };
443 };
444
445 // Control_L+Win_L locks the first group (presumably Lat).
446 // Control_R+Menu locks the second group (presumably Rus).
447 partial modifier_keys
448 xkb_symbols "lctrl_lwin_rctrl_menu" {
449     key <LWIN> {
450         type[ Group1 ]    = "PC_CONTROL_LEVEL2",
451         symbols[ Group1 ] = [ Super_L,    ISO_First_Group ]
452     };
453     key <MENU> {
454         type[ Group1 ]    = "PC_CONTROL_LEVEL2",
455         symbols[ Group1 ] = [ Menu,       ISO_Last_Group ]
456     };
457 }; // lctrl_lwin_rctrl_menu