level5 revision 46185892
1797b363dSmrg// These partial variants assign ISO_Level5_Shift to various XKB keycodes
2797b363dSmrg// so that the fifth shift level can be reached.
3154daed1Smrg
4797b363dSmrg// The right Ctrl key (while pressed) chooses the fifth shift level.
5154daed1Smrgpartial modifier_keys
6154daed1Smrgxkb_symbols "rctrl_switch" {
7154daed1Smrg  key <RCTL> {
8154daed1Smrg    type[Group1]="ONE_LEVEL",
95a35480eSmrg    symbols[Group1] = [ ISO_Level5_Shift ]
10797b363dSmrg  };
11154daed1Smrg};
12c067fea9Sghen
13797b363dSmrg// The Less/Greater key (while pressed) chooses the fifth shift level.
14c067fea9Sghenpartial modifier_keys
15c067fea9Sghenxkb_symbols "lsgt_switch" {
16c067fea9Sghen  key <LSGT> {
17c067fea9Sghen    type[Group1]="ONE_LEVEL",
18c067fea9Sghen    symbols[Group1] = [ ISO_Level5_Shift ]
19797b363dSmrg  };
20c067fea9Sghen};
21c067fea9Sghen
22797b363dSmrg// The right Alt key (while pressed) chooses the fifth shift level.
23c067fea9Sghenpartial modifier_keys
24c067fea9Sghenxkb_symbols "ralt_switch" {
25c067fea9Sghen  key <RALT> {
26c067fea9Sghen    type[Group1]="ONE_LEVEL",
27c067fea9Sghen    symbols[Group1] = [ ISO_Level5_Shift ]
28797b363dSmrg  };
29c067fea9Sghen};
30c067fea9Sghen
312ab00627Smrg// The CapsLock key (while pressed) chooses the fifth shift level.
322ab00627Smrgpartial modifier_keys
332ab00627Smrgxkb_symbols "caps_switch" {
342ab00627Smrg  key <CAPS> {
352ab00627Smrg    type[Group1]="ONE_LEVEL",
362ab00627Smrg    symbols[Group1] = [ ISO_Level5_Shift ]
372ab00627Smrg  };
382ab00627Smrg};
392ab00627Smrg
4046185892Smrg// The Menu key (while pressed) chooses the fifth shift level.
41797b363dSmrgpartial modifier_keys
4246185892Smrgxkb_symbols "menu_switch" {
4346185892Smrg  key <MENU> {
4446185892Smrg    type[Group1]="ONE_LEVEL",
45797b363dSmrg    symbols[Group1] = [ ISO_Level5_Shift ]
46797b363dSmrg  };
47797b363dSmrg};
48c067fea9Sghen
4946185892Smrg// This adds the definitions needed to create a level5-locking behaviour,
5046185892Smrg// using the virtual modifier NumLock (mapped to Mod2) as lock indicator.
5146185892Smrg// See also types/level5 (EIGHT_LEVEL_LEVEL_FIVE_LOCK) and compat/level5 (level5_lock).
52c067fea9Sghenpartial modifier_keys
53c067fea9Sghenxkb_symbols "lock" {
54c067fea9Sghen  replace key <HYPR> {
55c067fea9Sghen    vmods = NumLock,
5646185892Smrg    type[Group1] = "ONE_LEVEL",
57c067fea9Sghen    symbols[Group1] = [ NoSymbol ],
58c067fea9Sghen    actions[Group1] = [ SetMods(modifiers=NumLock) ]
59c067fea9Sghen  };
60c067fea9Sghen  modifier_map Mod2 { <HYPR> };
61c067fea9Sghen};
62c067fea9Sghen
63797b363dSmrg// The following modifier keys are used to switch to the third shift level
64797b363dSmrg// and to set a corresponding lock, implemented as NumLock.
65797b363dSmrg
66c067fea9Sghenpartial modifier_keys
67c067fea9Sghenxkb_symbols "lsgt_switch_lock" {
68c067fea9Sghen  include "level5(lock)"
69c067fea9Sghen  key <LSGT> {
70c067fea9Sghen    type[Group1] = "EIGHT_LEVEL",
71797b363dSmrg    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
72797b363dSmrg                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
73c067fea9Sghen  };
74c067fea9Sghen};
75c067fea9Sghen
76c067fea9Sghenpartial modifier_keys
77c067fea9Sghenxkb_symbols "lwin_switch_lock" {
78c067fea9Sghen  include "level5(lock)"
79c067fea9Sghen  key <LWIN> {
80c067fea9Sghen    type[Group1] = "EIGHT_LEVEL",
81797b363dSmrg    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
82797b363dSmrg                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
83c067fea9Sghen  };
84c067fea9Sghen};
85c067fea9Sghen
86c067fea9Sghenpartial modifier_keys
87c067fea9Sghenxkb_symbols "ralt_switch_lock" {
88c067fea9Sghen  include "level5(lock)"
89c067fea9Sghen  key <RALT> {
90c067fea9Sghen    type[Group1] = "EIGHT_LEVEL",
91797b363dSmrg    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
92797b363dSmrg                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
93c067fea9Sghen  };
94c067fea9Sghen};
95c067fea9Sghen
96c067fea9Sghenpartial modifier_keys
97c067fea9Sghenxkb_symbols "rwin_switch_lock" {
98c067fea9Sghen  include "level5(lock)"
99c067fea9Sghen  key <RWIN> {
100c067fea9Sghen    type[Group1] = "EIGHT_LEVEL",
101797b363dSmrg    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
102797b363dSmrg                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
103c067fea9Sghen  };
104c067fea9Sghen};
105c067fea9Sghen
106c067fea9Sghenpartial modifier_keys
107c067fea9Sghenxkb_symbols "lsgt_switch_lock_cancel" {
108c067fea9Sghen  include "level5(lock)"
109c067fea9Sghen  key <LSGT> {
110c067fea9Sghen    type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
111797b363dSmrg    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
112797b363dSmrg                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
113c067fea9Sghen  };
114c067fea9Sghen};
115c067fea9Sghen
116c067fea9Sghenpartial modifier_keys
117c067fea9Sghenxkb_symbols "lwin_switch_lock_cancel" {
118c067fea9Sghen  include "level5(lock)"
119c067fea9Sghen  key <LWIN> {
120c067fea9Sghen    type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
121797b363dSmrg    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
122797b363dSmrg                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
123c067fea9Sghen  };
124c067fea9Sghen};
125c067fea9Sghen
126c067fea9Sghenpartial modifier_keys
127c067fea9Sghenxkb_symbols "ralt_switch_lock_cancel" {
128c067fea9Sghen  include "level5(lock)"
129c067fea9Sghen  key <RALT> {
130c067fea9Sghen    type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
131797b363dSmrg    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
132797b363dSmrg                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
133c067fea9Sghen  };
134c067fea9Sghen};
135c067fea9Sghen
136c067fea9Sghenpartial modifier_keys
137c067fea9Sghenxkb_symbols "rwin_switch_lock_cancel" {
138c067fea9Sghen  include "level5(lock)"
139c067fea9Sghen  key <RWIN> {
140c067fea9Sghen    type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
141797b363dSmrg    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
142797b363dSmrg                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
143c067fea9Sghen  };
144c067fea9Sghen};
145