1 // these variants assign various XKB keycodes to ISO_Level3_Shift so that
2 // the third shift level can be reached
5 // the default behavior is for the right Alt key (AltGr) to generate the
6 // third engraved symbol
7 default partial modifier_keys
8 xkb_symbols "ralt_switch" {
10 type[Group1]="ONE_LEVEL",
11 symbols[Group1] = [ ISO_Level3_Shift ]
13 modifier_map Mod5 { ISO_Level3_Shift };
16 // Right Alt key never chooses 3rd level.
17 // This option attempts to undo the effect of a layout's
18 // including ralt_switch. You may also want to select another
19 // level3 option that maps the level3 shift to some other key.
21 xkb_symbols "ralt_alt" {
23 type[Group1]="TWO_LEVEL",
24 type[Group2]="TWO_LEVEL",
25 type[Group3]="TWO_LEVEL",
26 type[Group4]="TWO_LEVEL",
27 symbols[Group1] = [ Alt_R, Meta_R ],
28 symbols[Group2] = [ Alt_R, Meta_R ],
29 symbols[Group3] = [ Alt_R, Meta_R ],
30 symbols[Group4] = [ Alt_R, Meta_R ]
32 modifier_map Mod1 { <RALT> };
36 xkb_symbols "ralt_switch_multikey" {
38 type[Group1]="TWO_LEVEL",
39 symbols[Group1] = [ ISO_Level3_Shift, Multi_key ]
43 // special case or right Alt switch - for use with grp:alts_toggle
45 partial hidden modifier_keys
46 xkb_symbols "ralt_switch_for_alts_toggle" {
47 virtual_modifiers LAlt, AlGr;
49 type[Group1]="PC_RALT_LEVEL2",
50 symbols[Group1] = [ Alt_L, ISO_Prev_Group, ISO_Prev_Group ],
54 type[Group1]="PC_ALT_LEVEL2",
55 symbols[Group1] = [ ISO_Level3_Shift, ISO_Next_Group ],
58 modifier_map Mod5 { ISO_Level3_Shift };
61 // using the level(alt_switch) map, either Alt key temporarily chooses
62 // the third shift level. (Mostly be used to imitate Mac OS functionality.)
64 xkb_symbols "alt_switch" {
65 include "level3(lalt_switch)"
66 include "level3(ralt_switch)"
70 xkb_symbols "lalt_switch" {
72 type[Group1]="ONE_LEVEL",
73 symbols[Group1] = [ ISO_Level3_Shift ]
75 modifier_map Mod5 { <LALT> };
78 // using the level(switch) map, the right Control key temporarily
79 // chooses the third shift level (until it is released).
81 xkb_symbols "switch" {
83 type[Group1]="ONE_LEVEL",
84 symbols[Group1] = [ ISO_Level3_Shift ]
86 modifier_map Mod5 { ISO_Level3_Shift };
89 // using the level(menu_switch) map, the Menu key temporarily
90 // chooses the third shift level (until it is released).
92 xkb_symbols "menu_switch" {
94 type[Group1]="ONE_LEVEL",
95 symbols[Group1] = [ ISO_Level3_Shift ]
97 modifier_map Mod5 { ISO_Level3_Shift };
100 // using the level3(win_switch) map, the either Windows' logo key
101 // temporarily chooses the third shift level.
102 partial modifier_keys
103 xkb_symbols "win_switch" {
104 include "level3(lwin_switch)"
105 include "level3(rwin_switch)"
108 // using the level3(lwin_switch) map, the left Windows' logo key
109 // temporarily chooses the third shift level.
110 partial modifier_keys
111 xkb_symbols "lwin_switch" {
113 type[Group1]="ONE_LEVEL",
114 symbols[Group1] = [ ISO_Level3_Shift ]
116 modifier_map Mod5 { ISO_Level3_Shift };
119 // using the level(rwin_switch) map, the right Windows' logo key
120 // temporarily chooses the third shift level. If you use this map,
121 // you should define your keyboard as pc101 or pc102 instead of pc104
123 partial modifier_keys
124 xkb_symbols "rwin_switch" {
126 type[Group1]="ONE_LEVEL",
127 symbols[Group1] = [ ISO_Level3_Shift ]
129 modifier_map Mod5 { ISO_Level3_Shift };
132 // using the level3(enter_switch) map, the Enter key on the keypad
133 // temporarily chooses the third shift level. This is especially
134 // useful for Mac laptops which miss the right Alt key.
135 partial modifier_keys
136 xkb_symbols "enter_switch" {
138 type[Group1]="ONE_LEVEL",
139 symbols[Group1] = [ ISO_Level3_Shift ]
141 modifier_map Mod5 { ISO_Level3_Shift };
144 partial modifier_keys
145 xkb_symbols "caps_switch" {
147 type[Group1]="ONE_LEVEL",
148 symbols[Group1] = [ ISO_Level3_Shift ]
150 modifier_map Mod5 { ISO_Level3_Shift };
153 partial modifier_keys
154 xkb_symbols "bksl_switch" {
156 type[Group1]="ONE_LEVEL",
157 symbols[Group1] = [ ISO_Level3_Shift ]
159 modifier_map Mod5 { ISO_Level3_Shift };
162 partial modifier_keys
163 xkb_symbols "lsgt_switch" {
165 type[Group1]="ONE_LEVEL",
166 symbols[Group1] = [ ISO_Level3_Shift ]
168 modifier_map Mod5 { ISO_Level3_Shift };
171 partial modifier_keys
172 xkb_symbols "caps_switch_latch" {
174 type[Group1]="THREE_LEVEL",
175 symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
177 modifier_map Mod5 { ISO_Level3_Shift };
180 partial modifier_keys
181 xkb_symbols "bksl_switch_latch" {
183 type[Group1]="THREE_LEVEL",
184 symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
186 modifier_map Mod5 { ISO_Level3_Shift };
189 partial modifier_keys
190 xkb_symbols "lsgt_switch_latch" {
192 type[Group1]="THREE_LEVEL",
193 symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
195 modifier_map Mod5 { ISO_Level3_Shift };