level3 revision 1.1.1.3 1 1.1.1.2 mrg // $XKeyboardConfig$
2 1.1 mrg
3 1.1 mrg // these variants assign various XKB keycodes to ISO_Level3_Shift so that
4 1.1 mrg // the third shift level can be reached
5 1.1 mrg //
6 1.1 mrg // $XFree86: xc/programs/xkbcomp/symbols/level3,v 1.7 2003/09/08 14:25:32 eich Exp $
7 1.1 mrg //
8 1.1 mrg
9 1.1 mrg // the default behavior is for the right Alt key (AltGr) to generate the
10 1.1 mrg // third engraved symbol
11 1.1 mrg default partial modifier_keys
12 1.1 mrg xkb_symbols "ralt_switch" {
13 1.1 mrg key <RALT> {
14 1.1 mrg type[Group1]="ONE_LEVEL",
15 1.1 mrg symbols[Group1] = [ ISO_Level3_Shift ]
16 1.1 mrg };
17 1.1 mrg modifier_map Mod5 { ISO_Level3_Shift };
18 1.1 mrg };
19 1.1 mrg
20 1.1 mrg // Right Alt key never chooses 3rd level.
21 1.1 mrg // This option attempts to undo the effect of a layout's
22 1.1 mrg // including ralt_switch. You may also want to select another
23 1.1 mrg // level3 option that maps the level3 shift to some other key.
24 1.1 mrg partial modifier_keys
25 1.1 mrg xkb_symbols "ralt_alt" {
26 1.1 mrg key <RALT> {
27 1.1 mrg type[Group1]="TWO_LEVEL",
28 1.1 mrg type[Group2]="TWO_LEVEL",
29 1.1 mrg type[Group3]="TWO_LEVEL",
30 1.1 mrg type[Group4]="TWO_LEVEL",
31 1.1 mrg symbols[Group1] = [ Alt_R, Meta_R ],
32 1.1 mrg symbols[Group2] = [ Alt_R, Meta_R ],
33 1.1 mrg symbols[Group3] = [ Alt_R, Meta_R ],
34 1.1 mrg symbols[Group4] = [ Alt_R, Meta_R ]
35 1.1 mrg };
36 1.1 mrg modifier_map Mod1 { <RALT> };
37 1.1 mrg };
38 1.1 mrg
39 1.1 mrg partial modifier_keys
40 1.1 mrg xkb_symbols "ralt_switch_multikey" {
41 1.1 mrg key <RALT> {
42 1.1 mrg type[Group1]="TWO_LEVEL",
43 1.1 mrg symbols[Group1] = [ ISO_Level3_Shift, Multi_key ]
44 1.1 mrg };
45 1.1 mrg };
46 1.1 mrg
47 1.1 mrg // special case or right Alt switch - for use with grp:alts_toggle
48 1.1 mrg //
49 1.1 mrg partial hidden modifier_keys
50 1.1 mrg xkb_symbols "ralt_switch_for_alts_toggle" {
51 1.1 mrg virtual_modifiers LAlt, AlGr;
52 1.1 mrg key <LALT> {
53 1.1 mrg type[Group1]="PC_RALT_LEVEL2",
54 1.1 mrg symbols[Group1] = [ Alt_L, ISO_Prev_Group, ISO_Prev_Group ],
55 1.1 mrg virtualMods= LAlt
56 1.1 mrg };
57 1.1 mrg key <RALT> {
58 1.1 mrg type[Group1]="PC_ALT_LEVEL2",
59 1.1 mrg symbols[Group1] = [ ISO_Level3_Shift, ISO_Next_Group ],
60 1.1 mrg virtualMods= AltGr
61 1.1 mrg };
62 1.1 mrg modifier_map Mod5 { ISO_Level3_Shift };
63 1.1 mrg };
64 1.1 mrg
65 1.1 mrg // using the level(alt_switch) map, either Alt key temporarily chooses
66 1.1 mrg // the third shift level. (Mostly be used to imitate Mac OS functionality.)
67 1.1 mrg partial modifier_keys
68 1.1 mrg xkb_symbols "alt_switch" {
69 1.1 mrg include "level3(lalt_switch)"
70 1.1 mrg include "level3(ralt_switch)"
71 1.1 mrg };
72 1.1 mrg
73 1.1 mrg partial modifier_keys
74 1.1 mrg xkb_symbols "lalt_switch" {
75 1.1 mrg key <LALT> {
76 1.1 mrg type[Group1]="ONE_LEVEL",
77 1.1 mrg symbols[Group1] = [ ISO_Level3_Shift ]
78 1.1 mrg };
79 1.1 mrg modifier_map Mod5 { <LALT> };
80 1.1 mrg };
81 1.1 mrg
82 1.1 mrg // using the level(switch) map, the right Control key temporarily
83 1.1 mrg // chooses the third shift level (until it is released).
84 1.1 mrg partial modifier_keys
85 1.1 mrg xkb_symbols "switch" {
86 1.1 mrg key <RCTL> {
87 1.1 mrg type[Group1]="ONE_LEVEL",
88 1.1 mrg symbols[Group1] = [ ISO_Level3_Shift ]
89 1.1 mrg };
90 1.1 mrg modifier_map Mod5 { ISO_Level3_Shift };
91 1.1 mrg };
92 1.1 mrg
93 1.1 mrg // using the level(menu_switch) map, the Menu key temporarily
94 1.1 mrg // chooses the third shift level (until it is released).
95 1.1 mrg partial modifier_keys
96 1.1 mrg xkb_symbols "menu_switch" {
97 1.1 mrg key <MENU> {
98 1.1 mrg type[Group1]="ONE_LEVEL",
99 1.1 mrg symbols[Group1] = [ ISO_Level3_Shift ]
100 1.1 mrg };
101 1.1 mrg modifier_map Mod5 { ISO_Level3_Shift };
102 1.1 mrg };
103 1.1 mrg
104 1.1 mrg // using the level3(win_switch) map, the either Windows' logo key
105 1.1 mrg // temporarily chooses the third shift level.
106 1.1 mrg partial modifier_keys
107 1.1 mrg xkb_symbols "win_switch" {
108 1.1 mrg include "level3(lwin_switch)"
109 1.1 mrg include "level3(rwin_switch)"
110 1.1 mrg };
111 1.1 mrg
112 1.1 mrg // using the level3(lwin_switch) map, the left Windows' logo key
113 1.1 mrg // temporarily chooses the third shift level.
114 1.1 mrg partial modifier_keys
115 1.1 mrg xkb_symbols "lwin_switch" {
116 1.1 mrg key <LWIN> {
117 1.1 mrg type[Group1]="ONE_LEVEL",
118 1.1 mrg symbols[Group1] = [ ISO_Level3_Shift ]
119 1.1 mrg };
120 1.1 mrg modifier_map Mod5 { ISO_Level3_Shift };
121 1.1 mrg };
122 1.1 mrg
123 1.1 mrg // using the level(rwin_switch) map, the right Windows' logo key
124 1.1 mrg // temporarily chooses the third shift level. If you use this map,
125 1.1 mrg // you should define your keyboard as pc101 or pc102 instead of pc104
126 1.1 mrg // or pc105.
127 1.1 mrg partial modifier_keys
128 1.1 mrg xkb_symbols "rwin_switch" {
129 1.1 mrg key <RWIN> {
130 1.1 mrg type[Group1]="ONE_LEVEL",
131 1.1 mrg symbols[Group1] = [ ISO_Level3_Shift ]
132 1.1 mrg };
133 1.1 mrg modifier_map Mod5 { ISO_Level3_Shift };
134 1.1 mrg };
135 1.1 mrg
136 1.1 mrg // using the level3(enter_switch) map, the Enter key on the keypad
137 1.1 mrg // temporarily chooses the third shift level. This is especially
138 1.1 mrg // useful for Mac laptops which miss the right Alt key.
139 1.1.1.3 ghen partial modifier_keys
140 1.1 mrg xkb_symbols "enter_switch" {
141 1.1 mrg key <KPEN> {
142 1.1 mrg type[Group1]="ONE_LEVEL",
143 1.1 mrg symbols[Group1] = [ ISO_Level3_Shift ]
144 1.1 mrg };
145 1.1 mrg modifier_map Mod5 { ISO_Level3_Shift };
146 1.1 mrg };
147 1.1.1.3 ghen
148 1.1.1.3 ghen partial modifier_keys
149 1.1.1.3 ghen xkb_symbols "caps_switch" {
150 1.1.1.3 ghen key <CAPS> {
151 1.1.1.3 ghen type[Group1]="ONE_LEVEL",
152 1.1.1.3 ghen symbols[Group1] = [ ISO_Level3_Shift ]
153 1.1.1.3 ghen };
154 1.1.1.3 ghen modifier_map Mod5 { ISO_Level3_Shift };
155 1.1.1.3 ghen };
156 1.1.1.3 ghen
157 1.1.1.3 ghen partial modifier_keys
158 1.1.1.3 ghen xkb_symbols "bksl_switch" {
159 1.1.1.3 ghen key <BKSL> {
160 1.1.1.3 ghen type[Group1]="ONE_LEVEL",
161 1.1.1.3 ghen symbols[Group1] = [ ISO_Level3_Shift ]
162 1.1.1.3 ghen };
163 1.1.1.3 ghen modifier_map Mod5 { ISO_Level3_Shift };
164 1.1.1.3 ghen };
165 1.1.1.3 ghen
166 1.1.1.3 ghen partial modifier_keys
167 1.1.1.3 ghen xkb_symbols "lsgt_switch" {
168 1.1.1.3 ghen key <LSGT> {
169 1.1.1.3 ghen type[Group1]="ONE_LEVEL",
170 1.1.1.3 ghen symbols[Group1] = [ ISO_Level3_Shift ]
171 1.1.1.3 ghen };
172 1.1.1.3 ghen modifier_map Mod5 { ISO_Level3_Shift };
173 1.1.1.3 ghen };
174 1.1.1.3 ghen
175 1.1.1.3 ghen partial modifier_keys
176 1.1.1.3 ghen xkb_symbols "caps_switch_latch" {
177 1.1.1.3 ghen key <CAPS> {
178 1.1.1.3 ghen type[Group1]="THREE_LEVEL",
179 1.1.1.3 ghen symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
180 1.1.1.3 ghen };
181 1.1.1.3 ghen modifier_map Mod5 { ISO_Level3_Shift };
182 1.1.1.3 ghen };
183 1.1.1.3 ghen
184 1.1.1.3 ghen partial modifier_keys
185 1.1.1.3 ghen xkb_symbols "bksl_switch_latch" {
186 1.1.1.3 ghen key <BKSL> {
187 1.1.1.3 ghen type[Group1]="THREE_LEVEL",
188 1.1.1.3 ghen symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
189 1.1.1.3 ghen };
190 1.1.1.3 ghen modifier_map Mod5 { ISO_Level3_Shift };
191 1.1.1.3 ghen };
192 1.1.1.3 ghen
193 1.1.1.3 ghen partial modifier_keys
194 1.1.1.3 ghen xkb_symbols "lsgt_switch_latch" {
195 1.1.1.3 ghen key <LSGT> {
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.3 ghen modifier_map Mod5 { ISO_Level3_Shift };
200 1.1.1.3 ghen };
201