symbols/group: add ScrollLock as a group switcher key
[xorg/xkeyboard-config] / symbols / group
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 $
7 partial modifier_keys 
8 xkb_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 //
18 partial modifier_keys 
19 xkb_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.
31 partial modifier_keys
32 xkb_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.
41 partial modifier_keys
42 xkb_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.
53 partial modifier_keys
54 xkb_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
63 partial modifier_keys
64 xkb_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).
72 partial modifier_keys 
73 xkb_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)
85 partial modifier_keys 
86 xkb_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.
96 partial modifier_keys 
97 xkb_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.
114 partial modifier_keys 
115 xkb_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
125 partial modifier_keys
126 xkb_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
133 partial modifier_keys
134 xkb_symbols "shift_caps_switch" {
135     key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] };
136 };
137
138 // using the group(win_menu_switch) map, pressing:
139 // LWIN selects the first group
140 // RWIN or MENU selects the last group
141 partial modifier_keys
142 xkb_symbols "win_menu_switch" {
143     virtual_modifiers AltGr;
144     key <LWIN> {
145         virtualMods= AltGr,
146         symbols[Group1] = [ ISO_First_Group ]
147     };
148     key <MENU> {
149         virtualMods= AltGr,
150         symbols[Group1] = [ ISO_Last_Group ]
151     };
152     key <RWIN> {
153         virtualMods= AltGr,
154         symbols[Group1] = [ ISO_Last_Group ]
155     };
156 };
157
158 // using the group(ctrl_alt_toggle) map, pressing:
159 //     Control_L+Alt_L locks the previous group
160 //     Control_R+Alt_R locks the next group
161 // If you have two groups and group wrap is enabled, the effect is
162 // indistinguishable.
163 partial modifier_keys 
164 xkb_symbols "ctrl_alt_toggle" {
165     virtual_modifiers Alt;
166     key <LALT> {
167         type[Group1]="PC_CONTROL_LEVEL2",
168         symbols[Group1]= [ NoSymbol,    ISO_Prev_Group ],
169         virtualMods= Alt
170     };
171     key <RALT> {
172         type[Group1]="PC_CONTROL_LEVEL2",
173         symbols[Group1]= [ NoSymbol,    ISO_Next_Group ],
174         virtualMods= Alt
175     };
176     key <LCTL> {
177         type[Group1]="PC_ALT_LEVEL2",
178         symbols[Group1]= [ Control_L,   ISO_Prev_Group ]
179     };
180     key <RCTL> {
181         type[Group1]="PC_ALT_LEVEL2",
182         symbols[Group1]= [ Control_R,   ISO_Next_Group ]
183     };
184 };
185
186 // using the group(alt_shift_toggle) map, pressing:
187 //     Shift_L+Alt_L locks the previous group
188 //     Shift_R+Alt_R locks the next group
189 // If you have two groups and group wrap is enabled, the effect is
190 // indistinguishable.
191 partial modifier_keys 
192 xkb_symbols "alt_shift_toggle" {
193     virtual_modifiers Alt;
194     key <LALT> {
195         symbols[Group1]= [ NoSymbol,    ISO_Prev_Group ],
196         virtualMods= Alt
197     };
198     key <RALT> {
199         symbols[Group1]= [ NoSymbol,    ISO_Next_Group ],
200         virtualMods= Alt
201     };
202     key <LFSH> {
203         type[Group1]="PC_ALT_LEVEL2",
204         symbols[Group1]= [ Shift_L,     ISO_Prev_Group ]
205     };
206     key <RTSH> {
207         type[Group1]="PC_ALT_LEVEL2",
208         symbols[Group1]= [ Shift_R,     ISO_Next_Group ]
209     };
210 };
211
212 // using the group(menu_toggle) map, pressing:
213 //     Menu key toggles groups
214 //     Shift+Menu acts as Menu
215 partial modifier_keys
216 xkb_symbols "menu_toggle" {
217     key <MENU> {        [  ISO_Next_Group,       Menu   ]       };
218 };
219
220 // using the group(lwin_toggle) map, pressing the left Windows' logo key
221 // toggles groups.  If you use this map, you would declare you keyboard
222 // as pc101 or pc102 instead of pc104 or pc105.
223 partial modifier_keys
224 xkb_symbols "lwin_toggle" {
225   virtual_modifiers AltGr;
226   key <LWIN> {
227     virtualMods= AltGr,
228     symbols[Group1] = [ ISO_Next_Group ]
229     };
230 };
231
232 // using the group(rwin_toggle) map, pressing the right Windows' logo key
233 // toggles groups.  If you use this map, you would declare you keyboard
234 // as pc101 or pc102 instead of pc104 or pc105.
235 partial modifier_keys
236 xkb_symbols "rwin_toggle" {
237   virtual_modifiers AltGr;
238   key <RWIN> {
239     virtualMods= AltGr,
240     symbols[Group1] = [ ISO_Next_Group ]
241     };
242 };
243
244 // Both Ctrls pressed together toggle group
245 partial modifier_keys
246 xkb_symbols "ctrls_toggle" {
247   virtual_modifiers LControl, RControl;
248     key <LCTL> {
249         type[Group1]="PC_RCONTROL_LEVEL2",
250         symbols[Group1]= [ NoSymbol,    ISO_Prev_Group ],
251         virtualMods= LControl
252     };
253     key <RCTL> {
254         type[Group1]="PC_LCONTROL_LEVEL2",
255         symbols[Group1]= [ NoSymbol,    ISO_Next_Group ],
256         virtualMods= RControl
257     };
258 };
259
260 // Both Alts pressed together toggle group
261 partial modifier_keys
262 xkb_symbols "alts_toggle" {
263   virtual_modifiers LAlt, RAlt;
264     key <LALT> {
265         type[Group1]="PC_RALT_LEVEL2",
266         symbols[Group1]= [ NoSymbol,    ISO_Prev_Group ],
267         virtualMods= LAlt
268     };
269     key <RALT> {
270         type[Group1]="PC_LALT_LEVEL2",
271         symbols[Group1]= [ NoSymbol,    ISO_Next_Group ],
272         virtualMods= RAlt
273     };
274 };
275
276 // Left Shift key toggles group
277 partial modifier_keys
278 xkb_symbols "lshift_toggle" {
279   virtual_modifiers AltGr;
280     key <LFSH>  {       
281         symbols[Group1]= [      ISO_Next_Group  ],
282         virtualMods= AltGr
283     };
284 };
285
286 // Right Shift key toggles group
287 partial modifier_keys
288 xkb_symbols "rshift_toggle" {
289   virtual_modifiers AltGr;
290     key <RTSH>  {       
291         symbols[Group1]= [      ISO_Next_Group  ],
292         virtualMods= AltGr
293     };
294 };
295
296 // Left Alt key toggles group
297 partial modifier_keys
298 xkb_symbols "lalt_toggle" {
299   virtual_modifiers AltGr;
300     key <LALT>  {       
301         symbols[Group1]= [      ISO_Next_Group  ],
302         virtualMods= AltGr
303     };
304 };
305
306 // Left Ctrl key toggles group
307 partial modifier_keys
308 xkb_symbols "lctrl_toggle" {
309   virtual_modifiers AltGr;
310     key <LCTL>  {       
311         symbols[Group1]= [      ISO_Next_Group  ],
312         virtualMods= AltGr
313     };
314 };
315
316 // Right Ctrl key toggles group
317 partial modifier_keys
318 xkb_symbols "rctrl_toggle" {
319   virtual_modifiers AltGr;
320     key <RCTL>  {       
321         symbols[Group1]= [      ISO_Next_Group  ],
322         virtualMods= AltGr
323     };
324 };
325
326 // using the group(alt_caps_toggle) map, pressing:
327 //     Alt+Caps Lock toggles group
328 //     Caps Lock toggles caps lock
329 partial modifier_keys
330 xkb_symbols "alt_caps_toggle" {
331     key        <CAPS> {
332        type="PC_ALT_LEVEL2",
333        symbols[Group1]= [  Caps_Lock,  ISO_Next_Group]
334     };
335 };
336
337 partial hidden modifier_keys
338 xkb_symbols "olpc" {
339   key <I219>  { [ ISO_Next_Group, ISO_Prev_Group ] };
340 };
341
342 partial modifier_keys
343 xkb_symbols "alt_space_toggle" {
344     key <SPCE> {
345     type[Group1]="PC_ALT_LEVEL2",
346     symbols[Group1]= [ space,   ISO_Next_Group ]
347     };
348 };
349
350 // using the group(sclk_toggle) map, pressing the Scroll Lock key
351 // toggles groups.
352 partial modifier_keys
353 xkb_symbols "sclk_toggle" {
354   virtual_modifiers AltGr;
355   key <SCLK> {
356     virtualMods= AltGr,
357     symbols[Group1] = [ ISO_Next_Group ]
358     };
359 };
360