Extended mapping for level6 in EIGHT_LEVEL_SEMIALPHABETIC
[xorg/xkeyboard-config] / types / level5
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".
5
6     virtual_modifiers LevelThree,ScrollLock,LevelFive;
7
8     type "EIGHT_LEVEL" {
9         modifiers = Shift+LevelThree+LevelFive;
10         map[None] = Level1;
11         map[Shift] = Level2;
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";
26     };
27
28     type "EIGHT_LEVEL_ALPHABETIC" {
29         modifiers = Shift+Lock+LevelThree+LevelFive;
30         map[None] = Level1;
31         map[Shift] = Level2;
32         map[Lock]  = Level2;
33         map[LevelThree] = Level3;
34         map[Shift+LevelThree] = Level4;
35         map[Lock+LevelThree] =  Level4;
36         map[Lock+Shift+LevelThree] = Level3;
37
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;
45
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";
54     };
55
56 //    type "EIGHT_LEVEL_LEVEL_FIVE_LOCK" {
57 //      // Level5-Lock is implemented by using NumLock, because a real modifier
58 //      // is required.
59 //      
60 //        modifiers = Shift + Lock + LevelThree + NumLock + LevelFive;
61 //
62 //        map[None]                                    = Level1;
63 //        map[Shift]                                   = Level2;
64 //        map[LevelThree]                              = Level3;
65 //        map[LevelThree+Shift]                        = Level4;
66 //
67 //        map[LevelFive]                               = Level5;
68 //        map[LevelFive+Shift]                         = Level6;
69 //        map[LevelFive+LevelThree]                    = Level7;
70 //        map[LevelFive+LevelThree+Shift]              = Level8;
71 //
72 //        map[NumLock]                                 = Level5;
73 //        map[NumLock+Shift]                           = Level6;
74 //        map[NumLock+LevelThree]                      = Level7;
75 //        map[NumLock+LevelThree+Shift]                = Level8;
76 //
77 //        map[NumLock+LevelFive]                       = Level1;
78 //        map[NumLock+LevelFive+Shift]                 = Level2;
79 //        map[NumLock+LevelFive+LevelThree]            = Level3;
80 //        map[NumLock+LevelFive+LevelThree+Shift]      = Level4;
81 //
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;
87 //
88 //        map[Lock+LevelFive]                          = Level5;
89 //        map[Lock+LevelFive+Shift]                    = Level6;
90 //        map[Lock+LevelFive+LevelThree]               = Level7;
91 //        map[Lock+LevelFive+LevelThree+Shift]         = Level8;
92 //
93 //        map[Lock+NumLock]                            = Level5;
94 //        map[Lock+NumLock+Shift]                      = Level6;
95 //        map[Lock+NumLock+LevelThree]                 = Level7;
96 //        map[Lock+NumLock+LevelThree+Shift]           = Level8;
97 //
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;
102 //
103 //        preserve[LevelFive+Shift] = Shift;
104 //        preserve[NumLock+Shift] = Shift;
105 //        preserve[Lock+LevelFive+Shift] = Shift;
106 //        preserve[Lock+NumLock+Shift] = Shift;
107 //
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";
116 //    };
117 //
118 //    type "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK" {
119 //      // Level5-Lock is implemented by using NumLock, because a real modifier
120 //      // is required.
121 //      
122 //        modifiers = Shift + Lock + LevelThree + NumLock + LevelFive;
123 //    
124 //        map[None]                                    = Level1;
125 //        map[Shift]                                   = Level2;
126 //        map[LevelThree]                              = Level3;
127 //        map[LevelThree+Shift]                        = Level4;
128 //
129 //        map[LevelFive]                               = Level5;
130 //        map[LevelFive+Shift]                         = Level6;
131 //        map[LevelFive+LevelThree]                    = Level7;
132 //        map[LevelFive+LevelThree+Shift]              = Level8;
133 //
134 //        map[NumLock]                                 = Level5;
135 //        map[NumLock+Shift]                           = Level6;
136 //        map[NumLock+LevelThree]                      = Level7;
137 //        map[NumLock+LevelThree+Shift]                = Level8;
138 //
139 //        map[NumLock+LevelFive]                       = Level1;
140 //        map[NumLock+LevelFive+Shift]                 = Level2;
141 //        map[NumLock+LevelFive+LevelThree]            = Level3;
142 //        map[NumLock+LevelFive+LevelThree+Shift]      = Level4;
143 //
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;
149 //
150 //        map[Lock+LevelFive]                          = Level5;
151 //        map[Lock+LevelFive+Shift]                    = Level6;
152 //        map[Lock+LevelFive+LevelThree]               = Level7;
153 //        map[Lock+LevelFive+LevelThree+Shift]         = Level8;
154 //
155 //        map[Lock+NumLock]                            = Level5;
156 //        map[Lock+NumLock+Shift]                      = Level6;
157 //        map[Lock+NumLock+LevelThree]                 = Level7;
158 //        map[Lock+NumLock+LevelThree+Shift]           = Level8;
159 //
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;
164 //
165 //        preserve[LevelFive+Shift] = Shift;
166 //        preserve[NumLock+Shift] = Shift;
167 //
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";
176 //    };
177
178     type "EIGHT_LEVEL_SEMIALPHABETIC" {
179         modifiers = Shift+Lock+LevelThree+LevelFive;
180         map[None] = Level1;
181         map[Shift] = Level2;
182         map[Lock]  = Level2;
183         map[LevelThree] = Level3;
184         map[Shift+LevelThree] = Level4;
185         map[Lock+LevelThree] =  Level3;
186         map[Lock+Shift+LevelThree] = Level4;
187
188         map[LevelFive] = Level5;
189         map[Shift+LevelFive] = Level6;
190         map[Lock+LevelFive]  = Level6;
191         map[Lock+Shift+LevelFive]  = Level6;
192         map[LevelThree+LevelFive] = Level7;
193         map[Shift+LevelThree+LevelFive] = Level8;
194         map[Lock+LevelThree+LevelFive] =  Level7;
195         map[Lock+Shift+LevelThree+LevelFive] = Level8;
196
197         preserve[Lock+LevelThree] = Lock;
198         preserve[Lock+Shift+LevelThree] = Lock;
199         preserve[Lock+LevelFive] = Lock;
200         preserve[Lock+Shift+LevelFive] = Lock;
201         preserve[Lock+LevelThree+LevelFive] = Lock;
202         preserve[Lock+Shift+LevelThree+LevelFive] = Lock;
203
204         level_name[Level1] = "Base";
205         level_name[Level2] = "Shift";
206         level_name[Level3] = "Alt Base";
207         level_name[Level4] = "Shift Alt";
208         level_name[Level5] = "X";
209         level_name[Level6] = "X Shift";
210         level_name[Level7] = "X Alt Base";
211         level_name[Level8] = "X Shift Alt";
212     };
213
214 };