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