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