• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// The right Alt key (while pressed) chooses the second keyboard group.
2partial modifier_keys
3xkb_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.
11partial modifier_keys
12xkb_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.
20partial modifier_keys
21xkb_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.)
29partial modifier_keys
30xkb_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.)
40partial modifier_keys
41xkb_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.)
50partial modifier_keys
51xkb_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.
58partial modifier_keys
59xkb_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).
69partial modifier_keys
70xkb_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.
76partial modifier_keys
77xkb_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.
83partial modifier_keys
84xkb_symbols "shift_caps_switch" {
85    key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] };
86};
87
88// toggle using win + space as combo
89partial modifier_keys
90xkb_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.
99partial modifier_keys
100xkb_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.
118partial modifier_keys
119xkb_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//
135partial modifier_keys
136xkb_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
144partial modifier_keys
145xkb_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
153partial modifier_keys
154xkb_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
162partial modifier_keys
163xkb_symbols "ctrl_shift_toggle" {
164    include "group(lctrl_lshift_toggle)"
165    include "group(rctrl_rshift_toggle)"
166};
167
168partial modifier_keys
169xkb_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//
178partial modifier_keys
179xkb_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
192partial modifier_keys
193xkb_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
206partial modifier_keys
207xkb_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
220partial modifier_keys
221xkb_symbols "ctrl_alt_toggle" {
222    include "group(lctrl_lalt_toggle)"
223    include "group(rctrl_ralt_toggle)"
224};
225
226partial modifier_keys
227xkb_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//
236partial modifier_keys
237xkb_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
249partial modifier_keys
250xkb_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
262partial modifier_keys
263xkb_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
275partial modifier_keys
276xkb_symbols "alt_shift_toggle" {
277    include "group(lalt_lshift_toggle)"
278    include "group(ralt_rshift_toggle)"
279};
280
281partial modifier_keys
282xkb_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.
290partial modifier_keys
291xkb_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.)
298partial modifier_keys
299xkb_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.)
310partial modifier_keys
311xkb_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).
321partial modifier_keys
322xkb_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).
338partial modifier_keys
339xkb_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.
354partial modifier_keys
355xkb_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.
364partial modifier_keys
365xkb_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.
374partial modifier_keys
375xkb_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.
384partial modifier_keys
385xkb_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.
394partial modifier_keys
395xkb_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.
405partial modifier_keys
406xkb_symbols "alt_caps_toggle" {
407    key <CAPS> {
408       type="PC_ALT_LEVEL2",
409       symbols[Group1] = [ Caps_Lock, ISO_Next_Group ]
410    };
411};
412
413hidden partial modifier_keys
414xkb_symbols "olpc" {
415    key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] };
416};
417
418partial modifier_keys
419xkb_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,
427partial modifier_keys
428xkb_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).
438partial modifier_keys
439xkb_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};
449