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