level5 revision 1.1.1.6 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 // Ensure a mapping to a real modifier for LevelFive.
35 partial modifier_keys
36 xkb_symbols "modifier_mapping" {
37 replace key <MDSW> {
38 type[Group1] = "ONE_LEVEL",
39 symbols[Group1] = [ ISO_Level5_Shift ]
40 };
41 modifier_map Mod3 { <MDSW> };
42 };
43
44
45 // This adds the definitions needed to create a level5-lock behaviour, using
46 // the real modifier NumLock as a lock indicator.
47 // See also: types/level5 : EIGHT_LEVEL_LEVEL_FIVE_LOCK
48 // See also: compat/level5(level5_lock)
49 partial modifier_keys
50 xkb_symbols "lock" {
51 key.type[Group1] = "ONE_LEVEL";
52 include "level5(modifier_mapping)"
53 replace key <HYPR> {
54 vmods = NumLock,
55 symbols[Group1] = [ NoSymbol ],
56 actions[Group1] = [ SetMods(modifiers=NumLock) ]
57 };
58 modifier_map Mod2 { <HYPR> };
59 };
60
61 // The following modifier keys are used to switch to the third shift level
62 // and to set a corresponding lock, implemented as NumLock.
63
64 partial modifier_keys
65 xkb_symbols "lsgt_switch_lock" {
66 include "level5(lock)"
67 key <LSGT> {
68 type[Group1] = "EIGHT_LEVEL",
69 symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
70 ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
71 };
72 };
73
74 partial modifier_keys
75 xkb_symbols "lwin_switch_lock" {
76 include "level5(lock)"
77 key <LWIN> {
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 "ralt_switch_lock" {
86 include "level5(lock)"
87 key <RALT> {
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 "rwin_switch_lock" {
96 include "level5(lock)"
97 key <RWIN> {
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 "lsgt_switch_lock_cancel" {
106 include "level5(lock)"
107 key <LSGT> {
108 type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
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 "lwin_switch_lock_cancel" {
116 include "level5(lock)"
117 key <LWIN> {
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 "ralt_switch_lock_cancel" {
126 include "level5(lock)"
127 key <RALT> {
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 "rwin_switch_lock_cancel" {
136 include "level5(lock)"
137 key <RWIN> {
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