group revision 1.1.1.12 1 // The right Alt key (while pressed) chooses the next group.
2 partial modifier_keys
3 xkb_symbols "switch" {
4 key <RALT> {[ Mode_switch, Multi_key ]};
5 };
6
7 // The left Alt key (while pressed) chooses the next group.
8 partial modifier_keys
9 xkb_symbols "lswitch" {
10 key <LALT> {[ Mode_switch, Multi_key ]};
11 };
12
13 // The left Win key (while pressed) chooses the next group.
14 partial modifier_keys
15 xkb_symbols "lwin_switch" {
16 key <LWIN> {[ Mode_switch, Multi_key ]};
17 };
18
19 // The right Win key (while pressed) chooses the next group.
20 partial modifier_keys
21 xkb_symbols "rwin_switch" {
22 key <RWIN> {[ Mode_switch, Multi_key ]};
23 };
24
25 // Either Win key (while pressed) chooses the next group.
26 partial modifier_keys
27 xkb_symbols "win_switch" {
28 include "group(lwin_switch)"
29 include "group(rwin_switch)"
30 };
31
32 // The Menu key (while pressed) chooses the next group,
33 // while Shift+Menu acts as Menu.
34 partial modifier_keys
35 xkb_symbols "menu_switch" {
36 key <MENU> {[ Mode_switch, Menu ]};
37 };
38
39 // The right Ctrl key (while pressed) chooses the next group.
40 partial modifier_keys
41 xkb_symbols "rctrl_switch" {
42 key <RCTL> {[ Mode_switch ]};
43 };
44
45 // The Caps_Lock key (while pressed) chooses the next group,
46 // while Alt+Caps_Lock toggles CapsLock.
47 partial modifier_keys
48 xkb_symbols "caps_switch" {
49 key <CAPS> {[ Mode_switch, Caps_Lock ], type[group1] = "PC_ALT_LEVEL2" };
50 };
51
52 // Pressing the right Alt key switches to the next group.
53 partial modifier_keys
54 xkb_symbols "toggle" {
55 key <RALT> {[ ISO_Next_Group ]};
56 };
57
58 // Pressing the left Alt key switches to the next group.
59 partial modifier_keys
60 xkb_symbols "lalt_toggle" {
61 key <LALT> {[ ISO_Next_Group ]};
62 };
63
64 // Pressing both Shift keys switches to the next or previous group
65 // (depending on which Shift is pressed first).
66 partial modifier_keys
67 xkb_symbols "shifts_toggle" {
68 key <LFSH> {[ Shift_L, ISO_Prev_Group ]};
69 key <RTSH> {[ Shift_R, ISO_Next_Group ]};
70 };
71
72 // Pressing Caps_Lock switches to the next group,
73 // while Shift+Caps_Lock toggles CapsLock.
74 partial modifier_keys
75 xkb_symbols "caps_toggle" {
76 key <CAPS> {[ ISO_Next_Group, Caps_Lock ], type[group1] = "TWO_LEVEL" };
77 };
78
79 // Pressing Shift+Caps_Lock switches to the next group,
80 // while plain Caps_Lock toggles CapsLock.
81 partial modifier_keys
82 xkb_symbols "shift_caps_toggle" {
83 key <CAPS> {[ Caps_Lock, ISO_Next_Group ], type[group1] = "TWO_LEVEL" };
84 };
85
86 // Pressing Alt+Space switches to the next group.
87 partial modifier_keys
88 xkb_symbols "alt_space_toggle" {
89 key <SPCE> {[ space, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" };
90 };
91
92 // Pressing Win+Space switches to the next group.
93 partial modifier_keys
94 xkb_symbols "win_space_toggle" {
95 key <SPCE> {[ space, ISO_Next_Group ], type[group1] = "PC_SUPER_LEVEL2" };
96 };
97
98 // Pressing Ctrl+Space switches to the next group.
99 partial modifier_keys
100 xkb_symbols "ctrl_space_toggle" {
101 key <SPCE> {[ space, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
102 };
103
104
105 // Pressing Caps_Lock selects the first group,
106 // pressing Shift+Caps_Lock selects the second group.
107 partial modifier_keys
108 xkb_symbols "caps_select" {
109 key <CAPS> {[ ISO_First_Group, ISO_Last_Group ], type[group1] = "TWO_LEVEL" };
110 };
111
112 // Pressing the left Win key selects the first group,
113 // pressing the right Win key or the Menu key selects the second group.
114 partial modifier_keys
115 xkb_symbols "win_menu_select" {
116 key <LWIN> {[ ISO_First_Group ]};
117 key <RWIN> {[ ISO_Last_Group ]};
118 key <MENU> {[ ISO_Last_Group ]};
119 };
120
121 // Pressing the left Ctrl key selects the first group,
122 // pressing the right Ctrl key selects the second group.
123 partial modifier_keys
124 xkb_symbols "ctrl_select" {
125 key <LCTL> {[ ISO_First_Group ]};
126 key <RCTL> {[ ISO_Last_Group ]};
127 };
128
129
130 //
131 // CTRL-SHIFT toggle section
132 //
133 partial modifier_keys
134 xkb_symbols "lctrl_lshift_toggle" {
135 key <LFSH> {[ Shift_L, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
136 key <LCTL> {[ Control_L, ISO_Next_Group ]};
137 };
138
139 partial modifier_keys
140 xkb_symbols "lctrl_lshift_toggle_rev" {
141 key <LFSH> {[ Shift_L, ISO_Prev_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
142 key <LCTL> {[ Control_L, ISO_Prev_Group ]};
143 };
144
145 partial modifier_keys
146 xkb_symbols "rctrl_rshift_toggle" {
147 key <RTSH> {[ Shift_R, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
148 key <RCTL> {[ Control_R, ISO_Next_Group ]};
149 };
150
151 partial modifier_keys
152 xkb_symbols "ctrl_shift_toggle" {
153 include "group(lctrl_lshift_toggle)"
154 include "group(rctrl_rshift_toggle)"
155 };
156
157 partial modifier_keys
158 xkb_symbols "ctrl_shift_toggle_bidir" {
159 include "group(lctrl_lshift_toggle_rev)"
160 include "group(rctrl_rshift_toggle)"
161 };
162
163
164 //
165 // CTRL-ALT toggle section
166 //
167 partial modifier_keys
168 xkb_symbols "lctrl_lalt_toggle" {
169 key <LALT> {[ NoSymbol, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
170 key <LCTL> {[ Control_L, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" };
171 };
172
173 partial modifier_keys
174 xkb_symbols "lctrl_lalt_toggle_rev" {
175 key <LALT> {[ NoSymbol, ISO_Prev_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
176 key <LCTL> {[ Control_L, ISO_Prev_Group ], type[group1] = "PC_ALT_LEVEL2" };
177 };
178
179 partial modifier_keys
180 xkb_symbols "rctrl_ralt_toggle" {
181 key <RALT> {[ NoSymbol, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
182 key <RCTL> {[ Control_R, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" };
183 };
184
185 partial modifier_keys
186 xkb_symbols "ctrl_alt_toggle" {
187 include "group(lctrl_lalt_toggle)"
188 include "group(rctrl_ralt_toggle)"
189 };
190
191 partial modifier_keys
192 xkb_symbols "ctrl_alt_toggle_bidir" {
193 include "group(lctrl_lalt_toggle_rev)"
194 include "group(rctrl_ralt_toggle)"
195 };
196
197
198 //
199 // ALT-SHIFT toggle section
200 //
201 partial modifier_keys
202 xkb_symbols "lalt_lshift_toggle" {
203 key <LALT> {[ NoSymbol, ISO_Next_Group ], type[group1] = "TWO_LEVEL" };
204 key <LFSH> {[ Shift_L, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" };
205 };
206
207 partial modifier_keys
208 xkb_symbols "lalt_lshift_toggle_rev" {
209 key <LALT> {[ NoSymbol, ISO_Prev_Group ], type[group1] = "TWO_LEVEL" };
210 key <LFSH> {[ Shift_L, ISO_Prev_Group ], type[group1] = "PC_ALT_LEVEL2" };
211 };
212
213 partial modifier_keys
214 xkb_symbols "ralt_rshift_toggle" {
215 key <RALT> {[ NoSymbol, ISO_Next_Group ], type[group1] = "TWO_LEVEL" };
216 key <RTSH> {[ Shift_R, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" };
217 };
218
219 partial modifier_keys
220 xkb_symbols "alt_shift_toggle" {
221 include "group(lalt_lshift_toggle)"
222 include "group(ralt_rshift_toggle)"
223 };
224
225 partial modifier_keys
226 xkb_symbols "alt_shift_toggle_bidir" {
227 include "group(lalt_lshift_toggle_rev)"
228 include "group(ralt_rshift_toggle)"
229 };
230
231
232 // Pressing the Menu key switches to the next group,
233 // while Shift+Menu acts as Menu.
234 partial modifier_keys
235 xkb_symbols "menu_toggle" {
236 key <MENU> {[ ISO_Next_Group, Menu ]};
237 };
238
239 // Pressing the left Win key switches to the next group.
240 partial modifier_keys
241 xkb_symbols "lwin_toggle" {
242 key <LWIN> {[ ISO_Next_Group ]};
243 };
244
245 // Pressing the right Win key switches to the next group.
246 partial modifier_keys
247 xkb_symbols "rwin_toggle" {
248 key <RWIN> {[ ISO_Next_Group ]};
249 };
250
251 // Pressing both Ctrl keys switches to the next or previous group
252 // (depending on which Ctrl is pressed first).
253 partial modifier_keys
254 xkb_symbols "ctrls_toggle" {
255 key <LCTL> {[ NoSymbol, ISO_Prev_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
256 key <RCTL> {[ NoSymbol, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
257 };
258
259 // Pressing both Alt keys switches to the next or previous group
260 // (depending on which Alt is pressed first).
261 partial modifier_keys
262 xkb_symbols "alts_toggle" {
263 key <LALT> {[ Alt_L, ISO_Prev_Group ], type[group1] = "PC_ALT_LEVEL2" };
264 key <RALT> {[ Alt_R, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" };
265 };
266
267 // Pressing Alt plus AltGr switches to the next or previous group
268 // (depending on which one is pressed first).
269 partial modifier_keys
270 xkb_symbols "alt_altgr_toggle" {
271 key <LALT> {[ Alt_L, Alt_L, ISO_Prev_Group, ISO_Prev_Group ],
272 type[group1] = "FOUR_LEVEL" };
273 key <RALT> {[ ISO_Level3_Shift, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" };
274 };
275
276 // Pressing the left Shift key switches to the next group.
277 partial modifier_keys
278 xkb_symbols "lshift_toggle" {
279 key <LFSH> {[ ISO_Next_Group ]};
280 };
281
282 // Pressing the right Shift key switches to the next group.
283 partial modifier_keys
284 xkb_symbols "rshift_toggle" {
285 key <RTSH> {[ ISO_Next_Group ]};
286 };
287
288 // Pressing the left Ctrl key switches to the next group.
289 partial modifier_keys
290 xkb_symbols "lctrl_toggle" {
291 key <LCTL> {[ ISO_Next_Group ]};
292 };
293
294 // Pressing the right Ctrl key switches to the next group.
295 partial modifier_keys
296 xkb_symbols "rctrl_toggle" {
297 key <RCTL> {[ ISO_Next_Group ]};
298 };
299
300 // Pressing Alt+Caps_Lock switches to the next group,
301 // while pressing Caps_Lock alone toggles CapsLock.
302 partial modifier_keys
303 xkb_symbols "alt_caps_toggle" {
304 key <CAPS> {[ Caps_Lock, ISO_Next_Group ], type[group1] = "PC_ALT_LEVEL2" };
305 };
306
307 hidden partial modifier_keys
308 xkb_symbols "olpc" {
309 key <I219> {[ ISO_Next_Group, ISO_Prev_Group ]};
310 };
311
312 // Pressing the Scroll Lock key switches to the next group.
313 partial modifier_keys
314 xkb_symbols "sclk_toggle" {
315 key <SCLK> {[ ISO_Next_Group ]};
316 };
317
318 // Pressing Ctrl + the left Win key selects the first group,
319 // pressing Ctrl + the Menu key selects the second group.
320 partial modifier_keys
321 xkb_symbols "lctrl_lwin_rctrl_menu" {
322 key <LWIN> {[ Super_L, ISO_First_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
323 key <MENU> {[ Menu, ISO_Last_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
324 };
325
326 // Pressing Ctrl + the left Win key switches to the next group.
327 partial modifier_keys
328 xkb_symbols "lctrl_lwin_toggle" {
329 key <LWIN> {[ Super_L, ISO_Next_Group ], type[group1] = "PC_CONTROL_LEVEL2" };
330 };
331