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