1797b363dSmrg// These partial variants assign ISO_Level3_Shift to various XKB keycodes
2797b363dSmrg// so that the third shift level can be reached.
3154daed1Smrg
4797b363dSmrg// The default behaviour:
5797b363dSmrg// the right Alt key (AltGr) chooses the third symbol engraved on a key.
68157b447Smrgdefault partial modifier_keys
7797b363dSmrgxkb_symbols "ralt_switch" {
8797b363dSmrg  key <RALT> {
9797b363dSmrg    type[Group1]="ONE_LEVEL",
10797b363dSmrg    symbols[Group1] = [ ISO_Level3_Shift ]
11797b363dSmrg  };
120412cdedSmrg};
130412cdedSmrg
14797b363dSmrg// The right Alt key never chooses the third level.
15797b363dSmrg// This option attempts to undo the effect of a layout's inclusion of
16797b363dSmrg// 'ralt_switch'.  You may want to also select another level3 option
17797b363dSmrg// to map the level3 shift to some other key.
18154daed1Smrgpartial modifier_keys
19154daed1Smrgxkb_symbols "ralt_alt" {
20797b363dSmrg  key <RALT> {
21154daed1Smrg    type[Group1]="TWO_LEVEL",
2246185892Smrg    symbols[Group1] = [ Alt_R, Meta_R ]
23797b363dSmrg  };
24797b363dSmrg  modifier_map Mod1 { <RALT> };
25154daed1Smrg};
26154daed1Smrg
27797b363dSmrg// The right Alt key (while pressed) chooses the third shift level,
28797b363dSmrg// and Compose is mapped to its second level.
29154daed1Smrgpartial modifier_keys
30154daed1Smrgxkb_symbols "ralt_switch_multikey" {
31154daed1Smrg  key <RALT> {
32154daed1Smrg    type[Group1]="TWO_LEVEL",
33154daed1Smrg    symbols[Group1] = [ ISO_Level3_Shift, Multi_key ]
34797b363dSmrg  };
35154daed1Smrg};
36154daed1Smrg
37797b363dSmrg// Either Alt key (while pressed) chooses the third shift level.
38797b363dSmrg// (To be used mostly to imitate Mac OS functionality.)
39154daed1Smrgpartial modifier_keys
40154daed1Smrgxkb_symbols "alt_switch" {
41154daed1Smrg  include "level3(lalt_switch)"
42154daed1Smrg  include "level3(ralt_switch)"
43154daed1Smrg};
44154daed1Smrg
45797b363dSmrg// The left Alt key (while pressed) chooses the third shift level.
46154daed1Smrgpartial modifier_keys
47154daed1Smrgxkb_symbols "lalt_switch" {
48154daed1Smrg  key <LALT> {
49154daed1Smrg    type[Group1]="ONE_LEVEL",
50154daed1Smrg    symbols[Group1] = [ ISO_Level3_Shift ]
51797b363dSmrg  };
52154daed1Smrg};
53154daed1Smrg
54797b363dSmrg// The right Ctrl key (while pressed) chooses the third shift level.
55154daed1Smrgpartial modifier_keys
56154daed1Smrgxkb_symbols "switch" {
57154daed1Smrg  key <RCTL> {
58154daed1Smrg    type[Group1]="ONE_LEVEL",
59154daed1Smrg    symbols[Group1] = [ ISO_Level3_Shift ]
60797b363dSmrg  };
61154daed1Smrg};
62154daed1Smrg
63797b363dSmrg// The Menu key (while pressed) chooses the third shift level.
64154daed1Smrgpartial modifier_keys
65154daed1Smrgxkb_symbols "menu_switch" {
66154daed1Smrg  key <MENU> {
67154daed1Smrg    type[Group1]="ONE_LEVEL",
68154daed1Smrg    symbols[Group1] = [ ISO_Level3_Shift ]
69797b363dSmrg  };
70154daed1Smrg};
71154daed1Smrg
72797b363dSmrg// Either Win key (while pressed) chooses the third shift level.
73154daed1Smrgpartial modifier_keys
74154daed1Smrgxkb_symbols "win_switch" {
75154daed1Smrg  include "level3(lwin_switch)"
76154daed1Smrg  include "level3(rwin_switch)"
77154daed1Smrg};
78154daed1Smrg
79797b363dSmrg// The left Win key (while pressed) chooses the third shift level.
80154daed1Smrgpartial modifier_keys
81154daed1Smrgxkb_symbols "lwin_switch" {
82154daed1Smrg  key <LWIN> {
83154daed1Smrg    type[Group1]="ONE_LEVEL",
84154daed1Smrg    symbols[Group1] = [ ISO_Level3_Shift ]
85797b363dSmrg  };
86154daed1Smrg};
87154daed1Smrg
88797b363dSmrg// The right Win key (while pressed) chooses the third shift level.
89154daed1Smrgpartial modifier_keys
90154daed1Smrgxkb_symbols "rwin_switch" {
91154daed1Smrg  key <RWIN> {
92154daed1Smrg    type[Group1]="ONE_LEVEL",
93154daed1Smrg    symbols[Group1] = [ ISO_Level3_Shift ]
94797b363dSmrg  };
95154daed1Smrg};
96154daed1Smrg
97797b363dSmrg// The Enter key on the kepypad (while pressed) chooses the third shift level.
98797b363dSmrg// (This is especially useful for Mac laptops which miss the right Alt key.)
99c067fea9Sghenpartial modifier_keys
100154daed1Smrgxkb_symbols "enter_switch" {
101154daed1Smrg  key <KPEN> {
102154daed1Smrg    type[Group1]="ONE_LEVEL",
103154daed1Smrg    symbols[Group1] = [ ISO_Level3_Shift ]
104797b363dSmrg  };
105154daed1Smrg};
106c067fea9Sghen
107797b363dSmrg// The CapsLock key (while pressed) chooses the third shift level.
108c067fea9Sghenpartial modifier_keys
109c067fea9Sghenxkb_symbols "caps_switch" {
110c067fea9Sghen  key <CAPS> {
111c067fea9Sghen    type[Group1]="ONE_LEVEL",
112c067fea9Sghen    symbols[Group1] = [ ISO_Level3_Shift ]
113c067fea9Sghen  };
114c067fea9Sghen};
115c067fea9Sghen
116797b363dSmrg// The Backslash key (while pressed) chooses the third shift level.
117c067fea9Sghenpartial modifier_keys
118c067fea9Sghenxkb_symbols "bksl_switch" {
119c067fea9Sghen  key <BKSL> {
120c067fea9Sghen    type[Group1]="ONE_LEVEL",
121c067fea9Sghen    symbols[Group1] = [ ISO_Level3_Shift ]
122c067fea9Sghen  };
123c067fea9Sghen};
124c067fea9Sghen
125797b363dSmrg// The Less/Greater key (while pressed) chooses the third shift level.
126c067fea9Sghenpartial modifier_keys
127c067fea9Sghenxkb_symbols "lsgt_switch" {
128c067fea9Sghen  key <LSGT> {
129c067fea9Sghen    type[Group1]="ONE_LEVEL",
130c067fea9Sghen    symbols[Group1] = [ ISO_Level3_Shift ]
131c067fea9Sghen  };
132c067fea9Sghen};
133c067fea9Sghen
134797b363dSmrg// The CapsLock key (while pressed) chooses the third shift level,
135797b363dSmrg// and latches when pressed together with another third-level chooser.
136c067fea9Sghenpartial modifier_keys
137c067fea9Sghenxkb_symbols "caps_switch_latch" {
138c067fea9Sghen  key <CAPS> {
139c067fea9Sghen    type[Group1]="THREE_LEVEL",
140c067fea9Sghen    symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
141c067fea9Sghen  };
142c067fea9Sghen};
143c067fea9Sghen
144797b363dSmrg// The Backslash key (while pressed) chooses the third shift level,
145797b363dSmrg// and latches when pressed together with another third-level chooser.
146c067fea9Sghenpartial modifier_keys
147c067fea9Sghenxkb_symbols "bksl_switch_latch" {
148c067fea9Sghen  key <BKSL> {
149c067fea9Sghen    type[Group1]="THREE_LEVEL",
150c067fea9Sghen    symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
151c067fea9Sghen  };
152c067fea9Sghen};
153c067fea9Sghen
154797b363dSmrg// The Less/Greater key (while pressed) chooses the third shift level,
155797b363dSmrg// and latches when pressed together with another third-level chooser.
156c067fea9Sghenpartial modifier_keys
157c067fea9Sghenxkb_symbols "lsgt_switch_latch" {
158c067fea9Sghen  key <LSGT> {
159c067fea9Sghen    type[Group1]="THREE_LEVEL",
160c067fea9Sghen    symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
161c067fea9Sghen  };
162c067fea9Sghen};
1631c606da7Smrg
1641c606da7Smrg// Number key 4 chooses third shift level when pressed in isolation.
1651c606da7Smrgpartial modifier_keys
1661c606da7Smrgxkb_symbols "4_switch_isolated" {
1671c606da7Smrg  override key <AE04> {
1681c606da7Smrg    symbols[Group1] = [ ISO_Level3_Shift ]
1691c606da7Smrg  };
1701c606da7Smrg};
1711c606da7Smrg
1721c606da7Smrg// Number key 9 chooses third shift level when pressed in isolation.
1731c606da7Smrgpartial modifier_keys
1741c606da7Smrgxkb_symbols "9_switch_isolated" {
1751c606da7Smrg  override key <AE09> {
1761c606da7Smrg    symbols[Group1] = [ ISO_Level3_Shift ]
1771c606da7Smrg  };
1781c606da7Smrg};
179