1 partial default xkb_types "default" {
2 // Definition for a key type used for the czech keymap, for instance.
3 // Defines style a with four level shift. It is similar to three_level
4 // type used for iso9995 but it lets the shift key behave "normally".
6 virtual_modifiers LevelThree,ScrollLock,LevelFive;
9 modifiers = Shift+LevelThree+LevelFive;
12 map[LevelThree] = Level3;
13 map[Shift+LevelThree] = Level4;
14 map[LevelFive] = Level5;
15 map[Shift+LevelFive] = Level6;
16 map[LevelThree+LevelFive] = Level7;
17 map[Shift+LevelThree+LevelFive] = Level8;
18 level_name[Level1] = "Base";
19 level_name[Level2] = "Shift";
20 level_name[Level3] = "Alt Base";
21 level_name[Level4] = "Shift Alt";
22 level_name[Level5] = "X";
23 level_name[Level6] = "X Shift";
24 level_name[Level7] = "X Alt Base";
25 level_name[Level8] = "X Shift Alt";
28 type "EIGHT_LEVEL_ALPHABETIC" {
29 modifiers = Shift+Lock+LevelThree+LevelFive;
33 map[LevelThree] = Level3;
34 map[Shift+LevelThree] = Level4;
35 map[Lock+LevelThree] = Level4;
36 map[Lock+Shift+LevelThree] = Level3;
38 map[LevelFive] = Level5;
39 map[Shift+LevelFive] = Level6;
40 map[Lock+LevelFive] = Level6;
41 map[LevelThree+LevelFive] = Level7;
42 map[Shift+LevelThree+LevelFive] = Level8;
43 map[Lock+LevelThree+LevelFive] = Level8;
44 map[Lock+Shift+LevelThree+LevelFive] = Level7;
46 level_name[Level1] = "Base";
47 level_name[Level2] = "Shift";
48 level_name[Level3] = "Alt Base";
49 level_name[Level4] = "Shift Alt";
50 level_name[Level5] = "X";
51 level_name[Level6] = "X Shift";
52 level_name[Level7] = "X Alt Base";
53 level_name[Level8] = "X Shift Alt";
56 // type "EIGHT_LEVEL_LEVEL_FIVE_LOCK" {
57 // // Level5-Lock is implemented by using NumLock, because a real modifier
60 // modifiers = Shift + Lock + LevelThree + NumLock + LevelFive;
62 // map[None] = Level1;
63 // map[Shift] = Level2;
64 // map[LevelThree] = Level3;
65 // map[LevelThree+Shift] = Level4;
67 // map[LevelFive] = Level5;
68 // map[LevelFive+Shift] = Level6;
69 // map[LevelFive+LevelThree] = Level7;
70 // map[LevelFive+LevelThree+Shift] = Level8;
72 // map[NumLock] = Level5;
73 // map[NumLock+Shift] = Level6;
74 // map[NumLock+LevelThree] = Level7;
75 // map[NumLock+LevelThree+Shift] = Level8;
77 // map[NumLock+LevelFive] = Level1;
78 // map[NumLock+LevelFive+Shift] = Level2;
79 // map[NumLock+LevelFive+LevelThree] = Level3;
80 // map[NumLock+LevelFive+LevelThree+Shift] = Level4;
82 // // Lock has no effect
83 // map[Lock] = Level1;
84 // map[Lock+Shift] = Level2;
85 // map[Lock+LevelThree] = Level3;
86 // map[Lock+LevelThree+Shift] = Level4;
88 // map[Lock+LevelFive] = Level5;
89 // map[Lock+LevelFive+Shift] = Level6;
90 // map[Lock+LevelFive+LevelThree] = Level7;
91 // map[Lock+LevelFive+LevelThree+Shift] = Level8;
93 // map[Lock+NumLock] = Level5;
94 // map[Lock+NumLock+Shift] = Level6;
95 // map[Lock+NumLock+LevelThree] = Level7;
96 // map[Lock+NumLock+LevelThree+Shift] = Level8;
98 // map[Lock+NumLock+LevelFive] = Level1;
99 // map[Lock+NumLock+LevelFive+Shift] = Level2;
100 // map[Lock+NumLock+LevelFive+LevelThree] = Level3;
101 // map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level4;
103 // preserve[LevelFive+Shift] = Shift;
104 // preserve[NumLock+Shift] = Shift;
105 // preserve[Lock+LevelFive+Shift] = Shift;
106 // preserve[Lock+NumLock+Shift] = Shift;
108 // level_name[Level1] = "Base";
109 // level_name[Level2] = "Shift";
110 // level_name[Level3] = "Alt Base";
111 // level_name[Level4] = "Shift Alt";
112 // level_name[Level5] = "X";
113 // level_name[Level6] = "X Shift";
114 // level_name[Level7] = "X Alt Base";
115 // level_name[Level8] = "X Shift Alt";
118 // type "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK" {
119 // // Level5-Lock is implemented by using NumLock, because a real modifier
122 // modifiers = Shift + Lock + LevelThree + NumLock + LevelFive;
124 // map[None] = Level1;
125 // map[Shift] = Level2;
126 // map[LevelThree] = Level3;
127 // map[LevelThree+Shift] = Level4;
129 // map[LevelFive] = Level5;
130 // map[LevelFive+Shift] = Level6;
131 // map[LevelFive+LevelThree] = Level7;
132 // map[LevelFive+LevelThree+Shift] = Level8;
134 // map[NumLock] = Level5;
135 // map[NumLock+Shift] = Level6;
136 // map[NumLock+LevelThree] = Level7;
137 // map[NumLock+LevelThree+Shift] = Level8;
139 // map[NumLock+LevelFive] = Level1;
140 // map[NumLock+LevelFive+Shift] = Level2;
141 // map[NumLock+LevelFive+LevelThree] = Level3;
142 // map[NumLock+LevelFive+LevelThree+Shift] = Level4;
144 // // Lock interchanges Level1 and Level2
145 // map[Lock] = Level2;
146 // map[Lock+Shift] = Level1;
147 // map[Lock+LevelThree] = Level3;
148 // map[Lock+LevelThree+Shift] = Level4;
150 // map[Lock+LevelFive] = Level5;
151 // map[Lock+LevelFive+Shift] = Level6;
152 // map[Lock+LevelFive+LevelThree] = Level7;
153 // map[Lock+LevelFive+LevelThree+Shift] = Level8;
155 // map[Lock+NumLock] = Level5;
156 // map[Lock+NumLock+Shift] = Level6;
157 // map[Lock+NumLock+LevelThree] = Level7;
158 // map[Lock+NumLock+LevelThree+Shift] = Level8;
160 // map[Lock+NumLock+LevelFive] = Level2;
161 // map[Lock+NumLock+LevelFive+Shift] = Level1;
162 // map[Lock+NumLock+LevelFive+LevelThree] = Level4;
163 // map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level3;
165 // preserve[LevelFive+Shift] = Shift;
166 // preserve[NumLock+Shift] = Shift;
168 // level_name[Level1] = "Base";
169 // level_name[Level2] = "Shift";
170 // level_name[Level3] = "Alt Base";
171 // level_name[Level4] = "Shift Alt";
172 // level_name[Level5] = "X";
173 // level_name[Level6] = "X Shift";
174 // level_name[Level7] = "X Alt Base";
175 // level_name[Level8] = "X Shift Alt";
178 type "EIGHT_LEVEL_SEMIALPHABETIC" {
179 modifiers = Shift+Lock+LevelThree+LevelFive;
183 map[LevelThree] = Level3;
184 map[Shift+LevelThree] = Level4;
185 map[Lock+LevelThree] = Level3;
186 map[Lock+Shift+LevelThree] = Level4;
188 map[LevelFive] = Level5;
189 map[Shift+LevelFive] = Level6;
190 map[Lock+LevelFive] = Level6;
191 map[LevelThree+LevelFive] = Level7;
192 map[Shift+LevelThree+LevelFive] = Level8;
193 map[Lock+LevelThree+LevelFive] = Level7;
194 map[Lock+Shift+LevelThree+LevelFive] = Level8;
196 preserve[Lock+LevelThree] = Lock;
197 preserve[Lock+Shift+LevelThree] = Lock;
198 preserve[Lock+LevelFive] = Lock;
199 preserve[Lock+Shift+LevelFive] = Lock;
200 preserve[Lock+LevelThree+LevelFive] = Lock;
201 preserve[Lock+Shift+LevelThree+LevelFive] = Lock;
203 level_name[Level1] = "Base";
204 level_name[Level2] = "Shift";
205 level_name[Level3] = "Alt Base";
206 level_name[Level4] = "Shift Alt";
207 level_name[Level5] = "X";
208 level_name[Level6] = "X Shift";
209 level_name[Level7] = "X Alt Base";
210 level_name[Level8] = "X Shift Alt";