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