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