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