level5 revision 46185892
1// These partial variants assign ISO_Level5_Shift to various XKB keycodes
2// so that the fifth shift level can be reached.
3
4// The right Ctrl key (while pressed) chooses the fifth shift level.
5partial modifier_keys
6xkb_symbols "rctrl_switch" {
7  key <RCTL> {
8    type[Group1]="ONE_LEVEL",
9    symbols[Group1] = [ ISO_Level5_Shift ]
10  };
11};
12
13// The Less/Greater key (while pressed) chooses the fifth shift level.
14partial modifier_keys
15xkb_symbols "lsgt_switch" {
16  key <LSGT> {
17    type[Group1]="ONE_LEVEL",
18    symbols[Group1] = [ ISO_Level5_Shift ]
19  };
20};
21
22// The right Alt key (while pressed) chooses the fifth shift level.
23partial modifier_keys
24xkb_symbols "ralt_switch" {
25  key <RALT> {
26    type[Group1]="ONE_LEVEL",
27    symbols[Group1] = [ ISO_Level5_Shift ]
28  };
29};
30
31// The CapsLock key (while pressed) chooses the fifth shift level.
32partial modifier_keys
33xkb_symbols "caps_switch" {
34  key <CAPS> {
35    type[Group1]="ONE_LEVEL",
36    symbols[Group1] = [ ISO_Level5_Shift ]
37  };
38};
39
40// The Menu key (while pressed) chooses the fifth shift level.
41partial modifier_keys
42xkb_symbols "menu_switch" {
43  key <MENU> {
44    type[Group1]="ONE_LEVEL",
45    symbols[Group1] = [ ISO_Level5_Shift ]
46  };
47};
48
49// This adds the definitions needed to create a level5-locking behaviour,
50// using the virtual modifier NumLock (mapped to Mod2) as lock indicator.
51// See also types/level5 (EIGHT_LEVEL_LEVEL_FIVE_LOCK) and compat/level5 (level5_lock).
52partial modifier_keys
53xkb_symbols "lock" {
54  replace key <HYPR> {
55    vmods = NumLock,
56    type[Group1] = "ONE_LEVEL",
57    symbols[Group1] = [ NoSymbol ],
58    actions[Group1] = [ SetMods(modifiers=NumLock) ]
59  };
60  modifier_map Mod2 { <HYPR> };
61};
62
63// The following modifier keys are used to switch to the third shift level
64// and to set a corresponding lock, implemented as NumLock.
65
66partial modifier_keys
67xkb_symbols "lsgt_switch_lock" {
68  include "level5(lock)"
69  key <LSGT> {
70    type[Group1] = "EIGHT_LEVEL",
71    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
72                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
73  };
74};
75
76partial modifier_keys
77xkb_symbols "lwin_switch_lock" {
78  include "level5(lock)"
79  key <LWIN> {
80    type[Group1] = "EIGHT_LEVEL",
81    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
82                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
83  };
84};
85
86partial modifier_keys
87xkb_symbols "ralt_switch_lock" {
88  include "level5(lock)"
89  key <RALT> {
90    type[Group1] = "EIGHT_LEVEL",
91    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
92                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
93  };
94};
95
96partial modifier_keys
97xkb_symbols "rwin_switch_lock" {
98  include "level5(lock)"
99  key <RWIN> {
100    type[Group1] = "EIGHT_LEVEL",
101    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
102                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
103  };
104};
105
106partial modifier_keys
107xkb_symbols "lsgt_switch_lock_cancel" {
108  include "level5(lock)"
109  key <LSGT> {
110    type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
111    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
112                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
113  };
114};
115
116partial modifier_keys
117xkb_symbols "lwin_switch_lock_cancel" {
118  include "level5(lock)"
119  key <LWIN> {
120    type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
121    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
122                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
123  };
124};
125
126partial modifier_keys
127xkb_symbols "ralt_switch_lock_cancel" {
128  include "level5(lock)"
129  key <RALT> {
130    type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
131    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
132                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
133  };
134};
135
136partial modifier_keys
137xkb_symbols "rwin_switch_lock_cancel" {
138  include "level5(lock)"
139  key <RWIN> {
140    type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
141    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
142                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
143  };
144};
145