2 // $XFree86: xc/programs/xkbcomp/types/extra,v 1.3 2002/11/26 02:14:02 dawes Exp $
4 partial default xkb_types "default" {
5 // Definition for a key type used for the czech keymap, for instance.
6 // Defines style a with four level shift. It is similar to three_level
7 // type used for iso9995 but it lets the shift key behave "normally".
9 virtual_modifiers LevelThree,ScrollLock,LevelFive;
12 modifiers = Shift+LevelThree+LevelFive;
15 map[LevelThree] = Level3;
16 map[Shift+LevelThree] = Level4;
17 map[LevelFive] = Level5;
18 map[Shift+LevelFive] = Level6;
19 map[LevelThree+LevelFive] = Level7;
20 map[Shift+LevelThree+LevelFive] = Level8;
21 level_name[Level1] = "Base";
22 level_name[Level2] = "Shift";
23 level_name[Level3] = "Alt Base";
24 level_name[Level4] = "Shift Alt";
25 level_name[Level5] = "X";
26 level_name[Level6] = "X Shift";
27 level_name[Level7] = "X Alt Base";
28 level_name[Level8] = "X Shift Alt";
31 type "EIGHT_LEVEL_ALPHABETIC" {
32 modifiers = Shift+Lock+LevelThree+LevelFive;
36 map[LevelThree] = Level3;
37 map[Shift+LevelThree] = Level4;
38 map[Lock+LevelThree] = Level4;
39 map[Lock+Shift+LevelThree] = Level3;
41 map[LevelFive] = Level5;
42 map[Shift+LevelFive] = Level6;
43 map[Lock+LevelFive] = Level6;
44 map[LevelThree+LevelFive] = Level7;
45 map[Shift+LevelThree+LevelFive] = Level8;
46 map[Lock+LevelThree+LevelFive] = Level8;
47 map[Lock+Shift+LevelThree+LevelFive] = Level7;
49 level_name[Level1] = "Base";
50 level_name[Level2] = "Shift";
51 level_name[Level3] = "Alt Base";
52 level_name[Level4] = "Shift Alt";
53 level_name[Level5] = "X";
54 level_name[Level6] = "X Shift";
55 level_name[Level7] = "X Alt Base";
56 level_name[Level8] = "X Shift Alt";
59 // type "EIGHT_LEVEL_LEVEL_FIVE_LOCK" {
60 // // Level5-Lock is implemented by using NumLock, because a real modifier
63 // modifiers = Shift + Lock + LevelThree + NumLock + LevelFive;
65 // map[None] = Level1;
66 // map[Shift] = Level2;
67 // map[LevelThree] = Level3;
68 // map[LevelThree+Shift] = Level4;
70 // map[LevelFive] = Level5;
71 // map[LevelFive+Shift] = Level6;
72 // map[LevelFive+LevelThree] = Level7;
73 // map[LevelFive+LevelThree+Shift] = Level8;
75 // map[NumLock] = Level5;
76 // map[NumLock+Shift] = Level6;
77 // map[NumLock+LevelThree] = Level7;
78 // map[NumLock+LevelThree+Shift] = Level8;
80 // map[NumLock+LevelFive] = Level1;
81 // map[NumLock+LevelFive+Shift] = Level2;
82 // map[NumLock+LevelFive+LevelThree] = Level3;
83 // map[NumLock+LevelFive+LevelThree+Shift] = Level4;
85 // // Lock has no effect
86 // map[Lock] = Level1;
87 // map[Lock+Shift] = Level2;
88 // map[Lock+LevelThree] = Level3;
89 // map[Lock+LevelThree+Shift] = Level4;
91 // map[Lock+LevelFive] = Level5;
92 // map[Lock+LevelFive+Shift] = Level6;
93 // map[Lock+LevelFive+LevelThree] = Level7;
94 // map[Lock+LevelFive+LevelThree+Shift] = Level8;
96 // map[Lock+NumLock] = Level5;
97 // map[Lock+NumLock+Shift] = Level6;
98 // map[Lock+NumLock+LevelThree] = Level7;
99 // map[Lock+NumLock+LevelThree+Shift] = Level8;
101 // map[Lock+NumLock+LevelFive] = Level1;
102 // map[Lock+NumLock+LevelFive+Shift] = Level2;
103 // map[Lock+NumLock+LevelFive+LevelThree] = Level3;
104 // map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level4;
106 // preserve[LevelFive+Shift] = Shift;
107 // preserve[NumLock+Shift] = Shift;
108 // preserve[Lock+LevelFive+Shift] = Shift;
109 // preserve[Lock+NumLock+Shift] = Shift;
111 // level_name[Level1] = "Base";
112 // level_name[Level2] = "Shift";
113 // level_name[Level3] = "Alt Base";
114 // level_name[Level4] = "Shift Alt";
115 // level_name[Level5] = "X";
116 // level_name[Level6] = "X Shift";
117 // level_name[Level7] = "X Alt Base";
118 // level_name[Level8] = "X Shift Alt";
121 // type "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK" {
122 // // Level5-Lock is implemented by using NumLock, because a real modifier
125 // modifiers = Shift + Lock + LevelThree + NumLock + LevelFive;
127 // map[None] = Level1;
128 // map[Shift] = Level2;
129 // map[LevelThree] = Level3;
130 // map[LevelThree+Shift] = Level4;
132 // map[LevelFive] = Level5;
133 // map[LevelFive+Shift] = Level6;
134 // map[LevelFive+LevelThree] = Level7;
135 // map[LevelFive+LevelThree+Shift] = Level8;
137 // map[NumLock] = Level5;
138 // map[NumLock+Shift] = Level6;
139 // map[NumLock+LevelThree] = Level7;
140 // map[NumLock+LevelThree+Shift] = Level8;
142 // map[NumLock+LevelFive] = Level1;
143 // map[NumLock+LevelFive+Shift] = Level2;
144 // map[NumLock+LevelFive+LevelThree] = Level3;
145 // map[NumLock+LevelFive+LevelThree+Shift] = Level4;
147 // // Lock interchanges Level1 and Level2
148 // map[Lock] = Level2;
149 // map[Lock+Shift] = Level1;
150 // map[Lock+LevelThree] = Level3;
151 // map[Lock+LevelThree+Shift] = Level4;
153 // map[Lock+LevelFive] = Level5;
154 // map[Lock+LevelFive+Shift] = Level6;
155 // map[Lock+LevelFive+LevelThree] = Level7;
156 // map[Lock+LevelFive+LevelThree+Shift] = Level8;
158 // map[Lock+NumLock] = Level5;
159 // map[Lock+NumLock+Shift] = Level6;
160 // map[Lock+NumLock+LevelThree] = Level7;
161 // map[Lock+NumLock+LevelThree+Shift] = Level8;
163 // map[Lock+NumLock+LevelFive] = Level2;
164 // map[Lock+NumLock+LevelFive+Shift] = Level1;
165 // map[Lock+NumLock+LevelFive+LevelThree] = Level4;
166 // map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level3;
168 // preserve[LevelFive+Shift] = Shift;
169 // preserve[NumLock+Shift] = Shift;
171 // level_name[Level1] = "Base";
172 // level_name[Level2] = "Shift";
173 // level_name[Level3] = "Alt Base";
174 // level_name[Level4] = "Shift Alt";
175 // level_name[Level5] = "X";
176 // level_name[Level6] = "X Shift";
177 // level_name[Level7] = "X Alt Base";
178 // level_name[Level8] = "X Shift Alt";
181 type "EIGHT_LEVEL_SEMIALPHABETIC" {
182 modifiers = Shift+Lock+LevelThree+LevelFive;
186 map[LevelThree] = Level3;
187 map[Shift+LevelThree] = Level4;
188 map[Lock+LevelThree] = Level3;
189 map[Lock+Shift+LevelThree] = Level4;
191 map[LevelFive] = Level5;
192 map[Shift+LevelFive] = Level6;
193 map[Lock+LevelFive] = Level6;
194 map[LevelThree+LevelFive] = Level7;
195 map[Shift+LevelThree+LevelFive] = Level8;
196 map[Lock+LevelThree+LevelFive] = Level7;
197 map[Lock+Shift+LevelThree+LevelFive] = Level8;
199 preserve[Lock+LevelThree] = Lock;
200 preserve[Lock+Shift+LevelThree] = Lock;
201 preserve[Lock+LevelFive] = Lock;
202 preserve[Lock+Shift+LevelFive] = Lock;
203 preserve[Lock+LevelThree+LevelFive] = Lock;
204 preserve[Lock+Shift+LevelThree+LevelFive] = Lock;
206 level_name[Level1] = "Base";
207 level_name[Level2] = "Shift";
208 level_name[Level3] = "Alt Base";
209 level_name[Level4] = "Shift Alt";
210 level_name[Level5] = "X";
211 level_name[Level6] = "X Shift";
212 level_name[Level7] = "X Alt Base";
213 level_name[Level8] = "X Shift Alt";