level3 revision c067fea9
15a35480eSmrg// $XKeyboardConfig$
2154daed1Smrg
3154daed1Smrg// these variants assign various XKB keycodes to ISO_Level3_Shift so that
4154daed1Smrg// the third shift level can be reached
5154daed1Smrg//
6154daed1Smrg// $XFree86: xc/programs/xkbcomp/symbols/level3,v 1.7 2003/09/08 14:25:32 eich Exp $
7154daed1Smrg//
8154daed1Smrg
9154daed1Smrg// the default behavior is for the right Alt key (AltGr) to generate the
10154daed1Smrg// third engraved symbol
11154daed1Smrgdefault partial modifier_keys
12154daed1Smrgxkb_symbols "ralt_switch" {
13154daed1Smrg  key <RALT> {
14154daed1Smrg    type[Group1]="ONE_LEVEL",
15154daed1Smrg    symbols[Group1] = [ ISO_Level3_Shift ]
16154daed1Smrg    };
17154daed1Smrg  modifier_map Mod5   { ISO_Level3_Shift };
18154daed1Smrg};
19154daed1Smrg
20154daed1Smrg// Right Alt key never chooses 3rd level.
21154daed1Smrg// This option attempts to undo the effect of a layout's
22154daed1Smrg// including ralt_switch.  You may also want to select another
23154daed1Smrg// level3 option that maps the level3 shift to some other key.
24154daed1Smrgpartial modifier_keys
25154daed1Smrgxkb_symbols "ralt_alt" {
26154daed1Smrg  key <RALT> { 
27154daed1Smrg    type[Group1]="TWO_LEVEL",
28154daed1Smrg    type[Group2]="TWO_LEVEL",
29154daed1Smrg    type[Group3]="TWO_LEVEL",
30154daed1Smrg    type[Group4]="TWO_LEVEL",
31154daed1Smrg    symbols[Group1] = [ Alt_R, Meta_R ], 
32154daed1Smrg    symbols[Group2] = [ Alt_R, Meta_R ], 
33154daed1Smrg    symbols[Group3] = [ Alt_R, Meta_R ], 
34154daed1Smrg    symbols[Group4] = [ Alt_R, Meta_R ]
35154daed1Smrg    };
36154daed1Smrg  modifier_map Mod1    { <RALT> };
37154daed1Smrg};
38154daed1Smrg
39154daed1Smrgpartial modifier_keys
40154daed1Smrgxkb_symbols "ralt_switch_multikey" {
41154daed1Smrg  key <RALT> {
42154daed1Smrg    type[Group1]="TWO_LEVEL",
43154daed1Smrg    symbols[Group1] = [ ISO_Level3_Shift, Multi_key ]
44154daed1Smrg    };
45154daed1Smrg};
46154daed1Smrg
47154daed1Smrg// special case or right Alt switch - for use with grp:alts_toggle
48154daed1Smrg//
49154daed1Smrgpartial hidden modifier_keys
50154daed1Smrgxkb_symbols "ralt_switch_for_alts_toggle" {
51154daed1Smrg virtual_modifiers LAlt, AlGr;
52154daed1Smrg  key <LALT> {
53154daed1Smrg    type[Group1]="PC_RALT_LEVEL2",
54154daed1Smrg    symbols[Group1] = [ Alt_L,  ISO_Prev_Group,  ISO_Prev_Group ],
55154daed1Smrg    virtualMods= LAlt
56154daed1Smrg  };
57154daed1Smrg  key <RALT> {
58154daed1Smrg    type[Group1]="PC_ALT_LEVEL2",
59154daed1Smrg    symbols[Group1] = [ ISO_Level3_Shift, ISO_Next_Group ],
60154daed1Smrg    virtualMods= AltGr
61154daed1Smrg  };
62154daed1Smrg  modifier_map Mod5   { ISO_Level3_Shift };
63154daed1Smrg};
64154daed1Smrg
65154daed1Smrg// using the level(alt_switch) map, either Alt key temporarily chooses
66154daed1Smrg// the third shift level.  (Mostly be used to imitate Mac OS functionality.)
67154daed1Smrgpartial modifier_keys
68154daed1Smrgxkb_symbols "alt_switch" {
69154daed1Smrg  include "level3(lalt_switch)"
70154daed1Smrg  include "level3(ralt_switch)"
71154daed1Smrg};
72154daed1Smrg
73154daed1Smrgpartial modifier_keys
74154daed1Smrgxkb_symbols "lalt_switch" {
75154daed1Smrg  key <LALT> {
76154daed1Smrg    type[Group1]="ONE_LEVEL",
77154daed1Smrg    symbols[Group1] = [ ISO_Level3_Shift ]
78154daed1Smrg    };
79154daed1Smrg  modifier_map Mod5   { <LALT> };
80154daed1Smrg};
81154daed1Smrg
82154daed1Smrg// using the level(switch) map, the right Control key temporarily
83154daed1Smrg// chooses the third shift level (until it is released).
84154daed1Smrgpartial modifier_keys
85154daed1Smrgxkb_symbols "switch" {
86154daed1Smrg  key <RCTL> {
87154daed1Smrg    type[Group1]="ONE_LEVEL",
88154daed1Smrg    symbols[Group1] = [ ISO_Level3_Shift ]
89154daed1Smrg    };
90154daed1Smrg  modifier_map Mod5   { ISO_Level3_Shift };
91154daed1Smrg};
92154daed1Smrg
93154daed1Smrg// using the level(menu_switch) map, the Menu key temporarily
94154daed1Smrg// chooses the third shift level (until it is released).
95154daed1Smrgpartial modifier_keys
96154daed1Smrgxkb_symbols "menu_switch" {
97154daed1Smrg  key <MENU> {
98154daed1Smrg    type[Group1]="ONE_LEVEL",
99154daed1Smrg    symbols[Group1] = [ ISO_Level3_Shift ]
100154daed1Smrg    };
101154daed1Smrg  modifier_map Mod5   { ISO_Level3_Shift };
102154daed1Smrg};
103154daed1Smrg
104154daed1Smrg// using the level3(win_switch) map, the either Windows' logo key
105154daed1Smrg// temporarily chooses the third shift level.
106154daed1Smrgpartial modifier_keys
107154daed1Smrgxkb_symbols "win_switch" {
108154daed1Smrg  include "level3(lwin_switch)"
109154daed1Smrg  include "level3(rwin_switch)"
110154daed1Smrg};
111154daed1Smrg
112154daed1Smrg// using the level3(lwin_switch) map, the left Windows' logo key
113154daed1Smrg// temporarily chooses the third shift level.
114154daed1Smrgpartial modifier_keys
115154daed1Smrgxkb_symbols "lwin_switch" {
116154daed1Smrg  key <LWIN> {
117154daed1Smrg    type[Group1]="ONE_LEVEL",
118154daed1Smrg    symbols[Group1] = [ ISO_Level3_Shift ]
119154daed1Smrg    };
120154daed1Smrg  modifier_map Mod5   { ISO_Level3_Shift };
121154daed1Smrg};
122154daed1Smrg
123154daed1Smrg// using the level(rwin_switch) map, the right Windows' logo key
124154daed1Smrg// temporarily chooses the third shift level.  If you use this map,
125154daed1Smrg// you should define your keyboard as pc101 or pc102 instead of pc104
126154daed1Smrg// or pc105.
127154daed1Smrgpartial modifier_keys
128154daed1Smrgxkb_symbols "rwin_switch" {
129154daed1Smrg  key <RWIN> {
130154daed1Smrg    type[Group1]="ONE_LEVEL",
131154daed1Smrg    symbols[Group1] = [ ISO_Level3_Shift ]
132154daed1Smrg    };
133154daed1Smrg  modifier_map Mod5   { ISO_Level3_Shift };
134154daed1Smrg};
135154daed1Smrg
136154daed1Smrg// using the level3(enter_switch) map, the Enter key on the keypad
137154daed1Smrg// temporarily chooses the third shift level.  This is especially
138154daed1Smrg// useful for Mac laptops which miss the right Alt key.
139c067fea9Sghenpartial modifier_keys
140154daed1Smrgxkb_symbols "enter_switch" {
141154daed1Smrg  key <KPEN> {
142154daed1Smrg    type[Group1]="ONE_LEVEL",
143154daed1Smrg    symbols[Group1] = [ ISO_Level3_Shift ]
144154daed1Smrg    };
145154daed1Smrg  modifier_map Mod5   { ISO_Level3_Shift };
146154daed1Smrg};
147c067fea9Sghen
148c067fea9Sghenpartial modifier_keys
149c067fea9Sghenxkb_symbols "caps_switch" {
150c067fea9Sghen  key <CAPS> {
151c067fea9Sghen    type[Group1]="ONE_LEVEL",
152c067fea9Sghen    symbols[Group1] = [ ISO_Level3_Shift ]
153c067fea9Sghen  };
154c067fea9Sghen  modifier_map Mod5   { ISO_Level3_Shift };
155c067fea9Sghen};
156c067fea9Sghen
157c067fea9Sghenpartial modifier_keys
158c067fea9Sghenxkb_symbols "bksl_switch" {
159c067fea9Sghen  key <BKSL> {
160c067fea9Sghen    type[Group1]="ONE_LEVEL",
161c067fea9Sghen    symbols[Group1] = [ ISO_Level3_Shift ]
162c067fea9Sghen  };
163c067fea9Sghen  modifier_map Mod5   { ISO_Level3_Shift };
164c067fea9Sghen};
165c067fea9Sghen
166c067fea9Sghenpartial modifier_keys
167c067fea9Sghenxkb_symbols "lsgt_switch" {
168c067fea9Sghen  key <LSGT> {
169c067fea9Sghen    type[Group1]="ONE_LEVEL",
170c067fea9Sghen    symbols[Group1] = [ ISO_Level3_Shift ]
171c067fea9Sghen  };
172c067fea9Sghen  modifier_map Mod5   { ISO_Level3_Shift };
173c067fea9Sghen};
174c067fea9Sghen
175c067fea9Sghenpartial modifier_keys
176c067fea9Sghenxkb_symbols "caps_switch_latch" {
177c067fea9Sghen  key <CAPS> {
178c067fea9Sghen    type[Group1]="THREE_LEVEL",
179c067fea9Sghen    symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
180c067fea9Sghen  };
181c067fea9Sghen  modifier_map Mod5   { ISO_Level3_Shift };
182c067fea9Sghen};
183c067fea9Sghen
184c067fea9Sghenpartial modifier_keys
185c067fea9Sghenxkb_symbols "bksl_switch_latch" {
186c067fea9Sghen  key <BKSL> {
187c067fea9Sghen    type[Group1]="THREE_LEVEL",
188c067fea9Sghen    symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
189c067fea9Sghen  };
190c067fea9Sghen  modifier_map Mod5   { ISO_Level3_Shift };
191c067fea9Sghen};
192c067fea9Sghen
193c067fea9Sghenpartial modifier_keys
194c067fea9Sghenxkb_symbols "lsgt_switch_latch" {
195c067fea9Sghen  key <LSGT> {
196c067fea9Sghen    type[Group1]="THREE_LEVEL",
197c067fea9Sghen    symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
198c067fea9Sghen  };
199c067fea9Sghen  modifier_map Mod5   { ISO_Level3_Shift };
200c067fea9Sghen};
201