level3 revision 1.1.1.6 1 1.1.1.6 mrg // These partial variants assign ISO_Level3_Shift to various XKB keycodes
2 1.1.1.6 mrg // so that the third shift level can be reached.
3 1.1 mrg
4 1.1.1.6 mrg // The default behaviour:
5 1.1.1.6 mrg // the right Alt key (AltGr) chooses the third symbol engraved on a key.
6 1.1.1.6 mrg default partial modifier_keys
7 1.1.1.6 mrg xkb_symbols "ralt_switch" {
8 1.1.1.6 mrg key <RALT> {
9 1.1.1.6 mrg type[Group1]="ONE_LEVEL",
10 1.1.1.6 mrg symbols[Group1] = [ ISO_Level3_Shift ]
11 1.1.1.6 mrg };
12 1.1.1.6 mrg include "level3(modifier_mapping)"
13 1.1.1.6 mrg };
14 1.1.1.6 mrg
15 1.1.1.6 mrg // Ensure a mapping to a real modifier for LevelThree.
16 1.1.1.5 mrg partial modifier_keys
17 1.1.1.5 mrg xkb_symbols "modifier_mapping" {
18 1.1.1.5 mrg replace key <LVL3> {
19 1.1.1.6 mrg type[Group1] = "ONE_LEVEL",
20 1.1.1.5 mrg symbols[Group1] = [ ISO_Level3_Shift ]
21 1.1.1.5 mrg };
22 1.1.1.5 mrg modifier_map Mod5 { <LVL3> };
23 1.1.1.5 mrg };
24 1.1.1.5 mrg
25 1.1.1.6 mrg // The right Alt key never chooses the third level.
26 1.1.1.6 mrg // This option attempts to undo the effect of a layout's inclusion of
27 1.1.1.6 mrg // 'ralt_switch'. You may want to also select another level3 option
28 1.1.1.6 mrg // to map the level3 shift to some other key.
29 1.1 mrg partial modifier_keys
30 1.1 mrg xkb_symbols "ralt_alt" {
31 1.1.1.6 mrg key <RALT> {
32 1.1 mrg type[Group1]="TWO_LEVEL",
33 1.1 mrg type[Group2]="TWO_LEVEL",
34 1.1 mrg type[Group3]="TWO_LEVEL",
35 1.1 mrg type[Group4]="TWO_LEVEL",
36 1.1.1.6 mrg symbols[Group1] = [ Alt_R, Meta_R ],
37 1.1.1.6 mrg symbols[Group2] = [ Alt_R, Meta_R ],
38 1.1.1.6 mrg symbols[Group3] = [ Alt_R, Meta_R ],
39 1.1 mrg symbols[Group4] = [ Alt_R, Meta_R ]
40 1.1.1.6 mrg };
41 1.1.1.6 mrg modifier_map Mod1 { <RALT> };
42 1.1 mrg };
43 1.1 mrg
44 1.1.1.6 mrg // The right Alt key (while pressed) chooses the third shift level,
45 1.1.1.6 mrg // and Compose is mapped to its second level.
46 1.1 mrg partial modifier_keys
47 1.1 mrg xkb_symbols "ralt_switch_multikey" {
48 1.1 mrg key <RALT> {
49 1.1 mrg type[Group1]="TWO_LEVEL",
50 1.1 mrg symbols[Group1] = [ ISO_Level3_Shift, Multi_key ]
51 1.1.1.6 mrg };
52 1.1.1.5 mrg include "level3(modifier_mapping)"
53 1.1 mrg };
54 1.1 mrg
55 1.1.1.6 mrg // A special case of the right-Alt switch -- for use with grp:alts_toggle.
56 1.1 mrg partial hidden modifier_keys
57 1.1 mrg xkb_symbols "ralt_switch_for_alts_toggle" {
58 1.1.1.6 mrg virtual_modifiers LAlt, AltGr;
59 1.1 mrg key <LALT> {
60 1.1 mrg type[Group1]="PC_RALT_LEVEL2",
61 1.1.1.6 mrg symbols[Group1] = [ Alt_L, ISO_Prev_Group, ISO_Prev_Group ],
62 1.1 mrg virtualMods= LAlt
63 1.1 mrg };
64 1.1 mrg key <RALT> {
65 1.1 mrg type[Group1]="PC_ALT_LEVEL2",
66 1.1 mrg symbols[Group1] = [ ISO_Level3_Shift, ISO_Next_Group ],
67 1.1 mrg virtualMods= AltGr
68 1.1 mrg };
69 1.1.1.5 mrg include "level3(modifier_mapping)"
70 1.1 mrg };
71 1.1 mrg
72 1.1.1.6 mrg // Either Alt key (while pressed) chooses the third shift level.
73 1.1.1.6 mrg // (To be used mostly to imitate Mac OS functionality.)
74 1.1 mrg partial modifier_keys
75 1.1 mrg xkb_symbols "alt_switch" {
76 1.1 mrg include "level3(lalt_switch)"
77 1.1 mrg include "level3(ralt_switch)"
78 1.1 mrg };
79 1.1 mrg
80 1.1.1.6 mrg // The left Alt key (while pressed) chooses the third shift level.
81 1.1 mrg partial modifier_keys
82 1.1 mrg xkb_symbols "lalt_switch" {
83 1.1 mrg key <LALT> {
84 1.1 mrg type[Group1]="ONE_LEVEL",
85 1.1 mrg symbols[Group1] = [ ISO_Level3_Shift ]
86 1.1.1.6 mrg };
87 1.1.1.5 mrg include "level3(modifier_mapping)"
88 1.1 mrg };
89 1.1 mrg
90 1.1.1.6 mrg // The right Ctrl key (while pressed) chooses the third shift level.
91 1.1 mrg partial modifier_keys
92 1.1 mrg xkb_symbols "switch" {
93 1.1 mrg key <RCTL> {
94 1.1 mrg type[Group1]="ONE_LEVEL",
95 1.1 mrg symbols[Group1] = [ ISO_Level3_Shift ]
96 1.1.1.6 mrg };
97 1.1.1.5 mrg include "level3(modifier_mapping)"
98 1.1 mrg };
99 1.1 mrg
100 1.1.1.6 mrg // The Menu key (while pressed) chooses the third shift level.
101 1.1 mrg partial modifier_keys
102 1.1 mrg xkb_symbols "menu_switch" {
103 1.1 mrg key <MENU> {
104 1.1 mrg type[Group1]="ONE_LEVEL",
105 1.1 mrg symbols[Group1] = [ ISO_Level3_Shift ]
106 1.1.1.6 mrg };
107 1.1.1.5 mrg include "level3(modifier_mapping)"
108 1.1 mrg };
109 1.1 mrg
110 1.1.1.6 mrg // Either Win key (while pressed) chooses the third shift level.
111 1.1 mrg partial modifier_keys
112 1.1 mrg xkb_symbols "win_switch" {
113 1.1 mrg include "level3(lwin_switch)"
114 1.1 mrg include "level3(rwin_switch)"
115 1.1 mrg };
116 1.1 mrg
117 1.1.1.6 mrg // The left Win key (while pressed) chooses the third shift level.
118 1.1 mrg partial modifier_keys
119 1.1 mrg xkb_symbols "lwin_switch" {
120 1.1 mrg key <LWIN> {
121 1.1 mrg type[Group1]="ONE_LEVEL",
122 1.1 mrg symbols[Group1] = [ ISO_Level3_Shift ]
123 1.1.1.6 mrg };
124 1.1.1.5 mrg include "level3(modifier_mapping)"
125 1.1 mrg };
126 1.1 mrg
127 1.1.1.6 mrg // The right Win key (while pressed) chooses the third shift level.
128 1.1.1.6 mrg // (When using this map, you should set your keyboard as pc101 or pc102
129 1.1.1.6 mrg // instead of pc104 or pc105.)
130 1.1 mrg partial modifier_keys
131 1.1 mrg xkb_symbols "rwin_switch" {
132 1.1 mrg key <RWIN> {
133 1.1 mrg type[Group1]="ONE_LEVEL",
134 1.1 mrg symbols[Group1] = [ ISO_Level3_Shift ]
135 1.1.1.6 mrg };
136 1.1.1.5 mrg include "level3(modifier_mapping)"
137 1.1 mrg };
138 1.1 mrg
139 1.1.1.6 mrg // The Enter key on the kepypad (while pressed) chooses the third shift level.
140 1.1.1.6 mrg // (This is especially useful for Mac laptops which miss the right Alt key.)
141 1.1.1.3 ghen partial modifier_keys
142 1.1 mrg xkb_symbols "enter_switch" {
143 1.1 mrg key <KPEN> {
144 1.1 mrg type[Group1]="ONE_LEVEL",
145 1.1 mrg symbols[Group1] = [ ISO_Level3_Shift ]
146 1.1.1.6 mrg };
147 1.1.1.5 mrg include "level3(modifier_mapping)"
148 1.1 mrg };
149 1.1.1.3 ghen
150 1.1.1.6 mrg // The CapsLock key (while pressed) chooses the third shift level.
151 1.1.1.3 ghen partial modifier_keys
152 1.1.1.3 ghen xkb_symbols "caps_switch" {
153 1.1.1.3 ghen key <CAPS> {
154 1.1.1.3 ghen type[Group1]="ONE_LEVEL",
155 1.1.1.3 ghen symbols[Group1] = [ ISO_Level3_Shift ]
156 1.1.1.3 ghen };
157 1.1.1.5 mrg include "level3(modifier_mapping)"
158 1.1.1.3 ghen };
159 1.1.1.3 ghen
160 1.1.1.6 mrg // The Backslash key (while pressed) chooses the third shift level.
161 1.1.1.3 ghen partial modifier_keys
162 1.1.1.3 ghen xkb_symbols "bksl_switch" {
163 1.1.1.3 ghen key <BKSL> {
164 1.1.1.3 ghen type[Group1]="ONE_LEVEL",
165 1.1.1.3 ghen symbols[Group1] = [ ISO_Level3_Shift ]
166 1.1.1.3 ghen };
167 1.1.1.5 mrg include "level3(modifier_mapping)"
168 1.1.1.3 ghen };
169 1.1.1.3 ghen
170 1.1.1.6 mrg // The Less/Greater key (while pressed) chooses the third shift level.
171 1.1.1.3 ghen partial modifier_keys
172 1.1.1.3 ghen xkb_symbols "lsgt_switch" {
173 1.1.1.3 ghen key <LSGT> {
174 1.1.1.3 ghen type[Group1]="ONE_LEVEL",
175 1.1.1.3 ghen symbols[Group1] = [ ISO_Level3_Shift ]
176 1.1.1.3 ghen };
177 1.1.1.5 mrg include "level3(modifier_mapping)"
178 1.1.1.3 ghen };
179 1.1.1.3 ghen
180 1.1.1.6 mrg // The CapsLock key (while pressed) chooses the third shift level,
181 1.1.1.6 mrg // and latches when pressed together with another third-level chooser.
182 1.1.1.3 ghen partial modifier_keys
183 1.1.1.3 ghen xkb_symbols "caps_switch_latch" {
184 1.1.1.3 ghen key <CAPS> {
185 1.1.1.3 ghen type[Group1]="THREE_LEVEL",
186 1.1.1.3 ghen symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
187 1.1.1.3 ghen };
188 1.1.1.5 mrg include "level3(modifier_mapping)"
189 1.1.1.3 ghen };
190 1.1.1.3 ghen
191 1.1.1.6 mrg // The Backslash key (while pressed) chooses the third shift level,
192 1.1.1.6 mrg // and latches when pressed together with another third-level chooser.
193 1.1.1.3 ghen partial modifier_keys
194 1.1.1.3 ghen xkb_symbols "bksl_switch_latch" {
195 1.1.1.3 ghen key <BKSL> {
196 1.1.1.3 ghen type[Group1]="THREE_LEVEL",
197 1.1.1.3 ghen symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
198 1.1.1.3 ghen };
199 1.1.1.5 mrg include "level3(modifier_mapping)"
200 1.1.1.3 ghen };
201 1.1.1.3 ghen
202 1.1.1.6 mrg // The Less/Greater key (while pressed) chooses the third shift level,
203 1.1.1.6 mrg // and latches when pressed together with another third-level chooser.
204 1.1.1.3 ghen partial modifier_keys
205 1.1.1.3 ghen xkb_symbols "lsgt_switch_latch" {
206 1.1.1.3 ghen key <LSGT> {
207 1.1.1.3 ghen type[Group1]="THREE_LEVEL",
208 1.1.1.3 ghen symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
209 1.1.1.3 ghen };
210 1.1.1.5 mrg include "level3(modifier_mapping)"
211 1.1.1.3 ghen };
212