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