rx-51 revision 1.1 1 1.1 ghen default partial alphanumeric_keys
2 1.1 ghen xkb_symbols "common" {
3 1.1 ghen include "nokia_vndr/rx-51(common_keys)"
4 1.1 ghen include "nokia_vndr/rx-51(modifiers)"
5 1.1 ghen
6 1.1 ghen // This section should not be included by any other section.
7 1.1 ghen // It's referenced only once by rule file to allow multiple layout configurations.
8 1.1 ghen
9 1.1 ghen // More than one layout at the same time could be set for instance as follows:
10 1.1 ghen // setxkbmap -rules evdev \
11 1.1 ghen // -model nokiarx51 \
12 1.1 ghen // -option grp:ctrl_shift_toggle \
13 1.1 ghen // -layout us,cz \
14 1.1 ghen // -variant ",qwerty"
15 1.1 ghen
16 1.1 ghen // Notice the similarity:
17 1.1 ghen // "pc+us+cz(qwerty):2+grp:XYZ" vs.
18 1.1 ghen // "nokia_vndr/rx-51(common)+nokia_vndr/rx-51(us)+nokia_vndr/rx-51(cz_qwerty):2+grp:XYZ"
19 1.1 ghen // where XYZ is one of xkb_symbols section usually located in file symbols/group.
20 1.1 ghen
21 1.1 ghen // Bear in mind that option XYZ could replace current keys configuration!!!
22 1.1 ghen
23 1.1 ghen // For instance using symbols/group(ctrl_shift_toggle) redefines LCTL and LFSH keys
24 1.1 ghen // which may disallow opening of virtual symbol table (Multi_key).
25 1.1 ghen // Fortunately the Multi_key is defined in 3rd and 4th level a ctrl_shift_toggle
26 1.1 ghen // redefines first two levels only. But RX-51 has not right Ctrl nor Shift therefore
27 1.1 ghen // pressing Ctrl+Shift will switch to previous layout, not to the next one.
28 1.1 ghen
29 1.1 ghen // For RX-51 device there is a lot of restrictions if more than one layout is
30 1.1 ghen // is configured at the same time because some modifiers and special cases are
31 1.1 ghen // handled by hildon layer (especially with eight-level layout):
32 1.1 ghen // - settings may be done from terminal only (GUI doesn't and won't support it)
33 1.1 ghen // - virtual symbol table is not updated according to current layout
34 1.1 ghen // - for unknown reasons the eight-level layout (nordic,ru) works properly
35 1.1 ghen // only if it's configured as first layout (e.g. "ru,us,cz" not "us,cz,ru")
36 1.1 ghen // otherwise it's not possible to access levels 5-8
37 1.1 ghen // - Ctrl+Space related problems:
38 1.1 ghen // - If eight-level layout is used as first layout one of eight-level layouts has to
39 1.1 ghen // be also chosen in GUI - otherwise the Ctrl+Space "switch" is disabled
40 1.1 ghen // - Ctrl+Space has no effect if only four-level layouts are chosen
41 1.1 ghen // (don't forget the layout configured in GUI - despite of it's not reachable)
42 1.1 ghen // - a few keys in 2nd layer could be mixed with other layouts when Ctrl+Space is "turned on" (why?)
43 1.1 ghen // in case eight- and four-level layouts are configured simultaneously
44 1.1 ghen // - Ctrl+Space is "turned on" by default and has to be "turned off" for four-level layouts
45 1.1 ghen // in case eight- and four-level layouts are configured simultaneously
46 1.1 ghen // - four-level layout on first place doesn't work at all when Ctrl+Space is "turned on"
47 1.1 ghen // in case the 2nd, 3rd or 4th layout is eight-level layout
48 1.1 ghen };
49 1.1 ghen
50 1.1 ghen ////////////////////////////////////////////////////////////////////////////////
51 1.1 ghen
52 1.1 ghen partial alphanumeric_keys
53 1.1 ghen xkb_symbols "us" {
54 1.1 ghen include "nokia_vndr/rx-51(english_base)"
55 1.1 ghen include "nokia_vndr/rx-51(arrows_4btns)"
56 1.1 ghen
57 1.1 ghen name[Group1] = "U.S. English";
58 1.1 ghen };
59 1.1 ghen
60 1.1 ghen
61 1.1 ghen
62 1.1 ghen partial alphanumeric_keys
63 1.1 ghen xkb_symbols "pl" {
64 1.1 ghen include "nokia_vndr/rx-51(english_base)"
65 1.1 ghen include "nokia_vndr/rx-51(arrows_4btns)"
66 1.1 ghen
67 1.1 ghen name[Group1] = "Polish";
68 1.1 ghen };
69 1.1 ghen
70 1.1 ghen
71 1.1 ghen
72 1.1 ghen partial alphanumeric_keys
73 1.1 ghen xkb_symbols "fise" {
74 1.1 ghen include "nokia_vndr/rx-51(nordic_base)"
75 1.1 ghen include "nokia_vndr/rx-51(arrows_2btns)"
76 1.1 ghen
77 1.1 ghen name[Group1] = "Finnish/Swedish";
78 1.1 ghen
79 1.1 ghen // 2. row
80 1.1 ghen key <AB09> { [ odiaeresis, Odiaeresis, exclam, exclam ] };
81 1.1 ghen key <UP> { [ adiaeresis, Adiaeresis, question, question ] };
82 1.1 ghen };
83 1.1 ghen
84 1.1 ghen
85 1.1 ghen
86 1.1 ghen partial alphanumeric_keys
87 1.1 ghen xkb_symbols "dano" {
88 1.1 ghen include "nokia_vndr/rx-51(nordic_base)"
89 1.1 ghen include "nokia_vndr/rx-51(arrows_2btns)"
90 1.1 ghen
91 1.1 ghen name[Group1] = "Danish/Norwegian";
92 1.1 ghen
93 1.1 ghen // 2. row
94 1.1 ghen key <AB09> { [ oslash, Oslash, exclam, exclam ] };
95 1.1 ghen key <UP> { [ ae, AE, question, question ] };
96 1.1 ghen };
97 1.1 ghen
98 1.1 ghen
99 1.1 ghen
100 1.1 ghen partial alphanumeric_keys
101 1.1 ghen xkb_symbols "nordic" {
102 1.1 ghen include "nokia_vndr/rx-51(nordic_base)"
103 1.1 ghen include "nokia_vndr/rx-51(arrows_2btns)"
104 1.1 ghen
105 1.1 ghen name[Group1] = "Danish/Finnish/Norwegian/Swedish";
106 1.1 ghen
107 1.1 ghen key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";
108 1.1 ghen
109 1.1 ghen // 2. row
110 1.1 ghen key <AB09> { [ odiaeresis, Odiaeresis, exclam, exclam, oslash, Oslash, exclam, exclam ] };
111 1.1 ghen key <UP> { [ adiaeresis, Adiaeresis, question, question, ae, AE, question, question ] };
112 1.1 ghen };
113 1.1 ghen
114 1.1 ghen
115 1.1 ghen
116 1.1 ghen partial alphanumeric_keys
117 1.1 ghen xkb_symbols "ptes" {
118 1.1 ghen include "nokia_vndr/rx-51(english_base)"
119 1.1 ghen include "nokia_vndr/rx-51(arrows_2btns)"
120 1.1 ghen
121 1.1 ghen name[Group1] = "Portuguese/Spanish";
122 1.1 ghen
123 1.1 ghen // 1. row
124 1.1 ghen key <AB08> { [ dead_acute, dead_acute, dead_grave, dead_grave ] };
125 1.1 ghen
126 1.1 ghen // 2. row
127 1.1 ghen key <AC05> { [ g, G, exclamdown, exclamdown ] };
128 1.1 ghen key <AC06> { [ h, H, exclam, exclam ] };
129 1.1 ghen key <AC07> { [ j, J, questiondown, questiondown ] };
130 1.1 ghen key <AC08> { [ k, K, question, question ] };
131 1.1 ghen key <AC09> { [ l, L, dead_diaeresis, dead_diaeresis ] };
132 1.1 ghen key <AB09> { [ ntilde, Ntilde, dead_tilde, dead_tilde ] };
133 1.1 ghen key <UP> { [ ccedilla, Ccedilla, dead_circumflex,dead_circumflex ] };
134 1.1 ghen
135 1.1 ghen // 3. row
136 1.1 ghen key <AB01> { [ z, Z, parenleft, parenleft ] };
137 1.1 ghen key <AB02> { [ x, X, parenright, parenright ] };
138 1.1 ghen key <AB03> { [ c, C, slash, slash ] };
139 1.1 ghen key <AB04> { [ v, V, quotedbl, quotedbl ] };
140 1.1 ghen key <AB05> { [ b, B, apostrophe, apostrophe ] };
141 1.1 ghen key <AB06> { [ n, N, colon, colon ] };
142 1.1 ghen key <AB07> { [ m, M, semicolon, semicolon ] };
143 1.1 ghen key <LEFT> { [ period, comma, comma, comma ] };
144 1.1 ghen };
145 1.1 ghen
146 1.1 ghen
147 1.1 ghen
148 1.1 ghen partial alphanumeric_keys
149 1.1 ghen xkb_symbols "fr" {
150 1.1 ghen include "nokia_vndr/rx-51(english_base)"
151 1.1 ghen include "nokia_vndr/rx-51(arrows_2btns)"
152 1.1 ghen
153 1.1 ghen name[Group1] = "French";
154 1.1 ghen
155 1.1 ghen // 1. row
156 1.1 ghen key <AD01> { [ a, A, 1, 1 ] };
157 1.1 ghen key <AD02> { [ z, Z, 2, 2 ] };
158 1.1 ghen key <AB08> { [ agrave, Agrave, ccedilla, Ccedilla ] };
159 1.1 ghen
160 1.1 ghen // 2. row
161 1.1 ghen key <AC01> { [ q, Q, asterisk, asterisk ] };
162 1.1 ghen key <AC02> { [ s, S, plus, plus ] };
163 1.1 ghen key <AC03> { [ d, D, numbersign, numbersign ] };
164 1.1 ghen key <AC04> { [ f, F, minus, minus ] };
165 1.1 ghen key <AC05> { [ g, G, underscore, underscore ] };
166 1.1 ghen key <AC06> { [ h, H, exclam, exclam ] };
167 1.1 ghen key <AC07> { [ j, J, question, question ] };
168 1.1 ghen key <AC08> { [ k, K, colon, colon ] };
169 1.1 ghen key <AC09> { [ l, L, dead_circumflex,dead_circumflex ] };
170 1.1 ghen key <AB09> { [ m, M, ugrave, Ugrave ] };
171 1.1 ghen key <UP> { [ eacute, Eacute, egrave, Egrave ] };
172 1.1 ghen
173 1.1 ghen // 3. row
174 1.1 ghen key <AB01> { [ w, W, EuroSign, EuroSign ] };
175 1.1 ghen key <AB03> { [ c, C, parenleft, parenleft ] };
176 1.1 ghen key <AB04> { [ v, V, parenright, parenright ] };
177 1.1 ghen key <AB05> { [ b, B, slash, slash ] };
178 1.1 ghen key <AB07> { [ comma, comma, apostrophe, apostrophe ] };
179 1.1 ghen key <LEFT> { [ semicolon, period, period, period ] };
180 1.1 ghen };
181 1.1 ghen
182 1.1 ghen
183 1.1 ghen
184 1.1 ghen partial alphanumeric_keys
185 1.1 ghen xkb_symbols "de" {
186 1.1 ghen include "nokia_vndr/rx-51(english_base)"
187 1.1 ghen include "nokia_vndr/rx-51(arrows_2btns)"
188 1.1 ghen
189 1.1 ghen name[Group1] = "German";
190 1.1 ghen
191 1.1 ghen // 1. row
192 1.1 ghen key <AD06> { [ z, Z, 6, 6 ] };
193 1.1 ghen key <AB08> { [ udiaeresis, Udiaeresis, ssharp, ssharp ] };
194 1.1 ghen
195 1.1 ghen // 2. row
196 1.1 ghen key <AC08> { [ k, K, semicolon, semicolon ] };
197 1.1 ghen key <AC09> { [ l, L, colon, colon ] };
198 1.1 ghen key <AB09> { [ odiaeresis, Odiaeresis, exclam, exclam ] };
199 1.1 ghen key <UP> { [ adiaeresis, Adiaeresis, question, question ] };
200 1.1 ghen
201 1.1 ghen // 3. row
202 1.1 ghen key <AB01> { [ y, Y, EuroSign, EuroSign ] };
203 1.1 ghen key <AB03> { [ c, C, equal, equal ] };
204 1.1 ghen key <LEFT> { [ period, comma, comma, comma ] };
205 1.1 ghen };
206 1.1 ghen
207 1.1 ghen
208 1.1 ghen
209 1.1 ghen partial alphanumeric_keys
210 1.1 ghen xkb_symbols "ch" {
211 1.1 ghen include "nokia_vndr/rx-51(english_base)"
212 1.1 ghen include "nokia_vndr/rx-51(arrows_2btns)"
213 1.1 ghen
214 1.1 ghen name[Group1] = "Swiss";
215 1.1 ghen
216 1.1 ghen // 1. row
217 1.1 ghen key <AD06> { [ z, Z, 6, 6 ] };
218 1.1 ghen key <AB08> { [ udiaeresis, Udiaeresis, egrave, Egrave ] };
219 1.1 ghen
220 1.1 ghen // 2. row
221 1.1 ghen key <AC06> { [ h, H, equal, equal ] };
222 1.1 ghen key <AC07> { [ j, J, parenleft, parenleft ] };
223 1.1 ghen key <AC08> { [ k, K, parenright, parenright ] };
224 1.1 ghen key <AC09> { [ l, L, colon, colon ] };
225 1.1 ghen key <AB09> { [ odiaeresis, Odiaeresis, eacute, Aacute ] };
226 1.1 ghen key <UP> { [ adiaeresis, Adiaeresis, agrave, Agrave ] };
227 1.1 ghen
228 1.1 ghen // 3. row
229 1.1 ghen key <AB01> { [ y, Y, question, question ] };
230 1.1 ghen key <AB02> { [ x, X, exclam, exclam ] };
231 1.1 ghen key <AB03> { [ c, C, ccedilla, Ccedilla ] };
232 1.1 ghen key <LEFT> { [ period, comma, comma, comma ] };
233 1.1 ghen };
234 1.1 ghen
235 1.1 ghen
236 1.1 ghen
237 1.1 ghen // Levels 5-8 are Russian, levels 1-4 US English, for shortcut reasons.
238 1.1 ghen partial alphanumeric_keys
239 1.1 ghen xkb_symbols "ru" {
240 1.1 ghen include "nokia_vndr/rx-51(english_base)"
241 1.1 ghen include "nokia_vndr/rx-51(arrows_2btns)"
242 1.1 ghen
243 1.1 ghen name[Group1] = "Russian";
244 1.1 ghen
245 1.1 ghen key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";
246 1.1 ghen
247 1.1 ghen // 1. row
248 1.1 ghen key <AD01> { [ q, Q, 1, 1, Cyrillic_shorti, Cyrillic_SHORTI, 1, 1 ] };
249 1.1 ghen key <AD02> { [ w, W, 2, 2, Cyrillic_tse, Cyrillic_TSE, 2, 2 ] };
250 1.1 ghen key <AD03> { [ e, E, 3, 3, Cyrillic_u, Cyrillic_U, 3, 3 ] };
251 1.1 ghen key <AD04> { [ r, R, 4, 4, Cyrillic_ka, Cyrillic_KA, 4, 4 ] };
252 1.1 ghen key <AD05> { [ t, T, 5, 5, Cyrillic_ie, Cyrillic_IE, 5, 5 ] };
253 1.1 ghen key <AD06> { [ y, Y, 6, 6, Cyrillic_en, Cyrillic_EN, 6, 6 ] };
254 1.1 ghen key <AD07> { [ u, U, 7, 7, Cyrillic_ghe, Cyrillic_GHE, 7, 7 ] };
255 1.1 ghen key <AD08> { [ i, I, 8, 8, Cyrillic_sha, Cyrillic_SHA, 8, 8 ] };
256 1.1 ghen key <AD09> { [ o, O, 9, 9, Cyrillic_shcha, Cyrillic_SHCHA, 9, 9 ] };
257 1.1 ghen key <AD10> { [ p, P, 0, 0, Cyrillic_ze, Cyrillic_ZE, 0, 0 ] };
258 1.1 ghen key <AB08> { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_hardsign, Cyrillic_HARDSIGN, Cyrillic_ha, Cyrillic_HA, Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
259 1.1 ghen
260 1.1 ghen // 2. row
261 1.1 ghen key <AC01> { [ a, A, asterisk, asterisk, Cyrillic_ef, Cyrillic_EF, asterisk, asterisk ] };
262 1.1 ghen key <AC02> { [ s, S, plus, plus, Cyrillic_yeru, Cyrillic_YERU, plus, plus ] };
263 1.1 ghen key <AC03> { [ d, D, numbersign, numbersign, Cyrillic_ve, Cyrillic_VE, numbersign, numbersign ] };
264 1.1 ghen key <AC04> { [ f, F, minus, minus, Cyrillic_a, Cyrillic_A, minus, minus ] };
265 1.1 ghen key <AC05> { [ g, G, underscore, underscore, Cyrillic_pe, Cyrillic_PE, underscore, underscore ] };
266 1.1 ghen key <AC06> { [ h, H, exclam, exclam, Cyrillic_er, Cyrillic_ER, exclam, exclam ] };
267 1.1 ghen key <AC07> { [ j, J, question, question, Cyrillic_o, Cyrillic_O, question, question ] };
268 1.1 ghen key <AC08> { [ k, K, semicolon, semicolon, Cyrillic_el, Cyrillic_EL, semicolon, semicolon ] };
269 1.1 ghen key <AC09> { [ l, L, colon, colon, Cyrillic_de, Cyrillic_DE, colon, colon ] };
270 1.1 ghen key <AB09> { [ comma, comma, comma, comma, Cyrillic_zhe, Cyrillic_ZHE, comma, comma ] };
271 1.1 ghen key <UP> { [ period, period, period, period, Cyrillic_e, Cyrillic_E, period, period ] };
272 1.1 ghen
273 1.1 ghen // 3. row
274 1.1 ghen key <AB01> { [ z, Z, dollar, dollar, Cyrillic_ya, Cyrillic_YA, dollar, dollar ] };
275 1.1 ghen key <AB02> { [ x, X, EuroSign, EuroSign, Cyrillic_che, Cyrillic_CHE, EuroSign, EuroSign ] };
276 1.1 ghen key <AB03> { [ c, C, slash, slash, Cyrillic_es, Cyrillic_ES, slash, slash ] };
277 1.1 ghen key <AB04> { [ v, V, parenleft, parenleft, Cyrillic_em, Cyrillic_EM, parenleft, parenleft ] };
278 1.1 ghen key <AB05> { [ b, B, parenright, parenright, Cyrillic_i, Cyrillic_I, parenright, parenright ] };
279 1.1 ghen key <AB06> { [ n, N, quotedbl, quotedbl, Cyrillic_te, Cyrillic_TE, quotedbl, quotedbl ] };
280 1.1 ghen key <AB07> { [ m, M, apostrophe, apostrophe, Cyrillic_softsign, Cyrillic_SOFTSIGN, apostrophe, apostrophe ] };
281 1.1 ghen key <LEFT> { [ Cyrillic_be, Cyrillic_BE, Cyrillic_yu, Cyrillic_YU, Cyrillic_be, Cyrillic_BE, Cyrillic_yu, Cyrillic_YU ] };
282 1.1 ghen };
283 1.1 ghen
284 1.1 ghen
285 1.1 ghen
286 1.1 ghen partial alphanumeric_keys
287 1.1 ghen xkb_symbols "it" {
288 1.1 ghen include "nokia_vndr/rx-51(english_base)"
289 1.1 ghen include "nokia_vndr/rx-51(arrows_2btns)"
290 1.1 ghen
291 1.1 ghen name[Group1] = "Italian";
292 1.1 ghen
293 1.1 ghen // 1. row
294 1.1 ghen key <AB08> { [ egrave, Egrave, eacute, Eacute ] };
295 1.1 ghen
296 1.1 ghen // 2. row
297 1.1 ghen key <AC06> { [ h, H, semicolon, semicolon ] };
298 1.1 ghen key <AC07> { [ j, J, colon, colon ] };
299 1.1 ghen key <AC08> { [ k, K, exclam, exclam ] };
300 1.1 ghen key <AC09> { [ l, L, question, question ] };
301 1.1 ghen key <AB09> { [ ograve, Ograve, igrave, Igrave ] };
302 1.1 ghen key <UP> { [ agrave, Agrave, ugrave, Ugrave ] };
303 1.1 ghen
304 1.1 ghen // 3. row
305 1.1 ghen key <AB01> { [ z, Z, EuroSign, EuroSign ] };
306 1.1 ghen key <AB02> { [ x, X, parenleft, parenleft ] };
307 1.1 ghen key <AB03> { [ c, C, parenright, parenright ] };
308 1.1 ghen key <LEFT> { [ period, comma, comma, comma ] };
309 1.1 ghen };
310 1.1 ghen
311 1.1 ghen
312 1.1 ghen
313 1.1 ghen partial alphanumeric_keys
314 1.1 ghen xkb_symbols "cz" {
315 1.1 ghen include "nokia_vndr/rx-51(english_base)"
316 1.1 ghen include "nokia_vndr/rx-51(arrows_2btns)"
317 1.1 ghen
318 1.1 ghen name[Group1] = "Czech";
319 1.1 ghen
320 1.1 ghen // 1. row
321 1.1 ghen key <AD06> { [ z, Z, 6, 6 ] };
322 1.1 ghen key <AB08> { [ dead_acute, dead_acute, sterling, sterling ] };
323 1.1 ghen
324 1.1 ghen // 2. row
325 1.1 ghen key <AC08> { [ k, K, semicolon, semicolon ] };
326 1.1 ghen key <AC09> { [ l, L, colon, colon ] };
327 1.1 ghen key <AB09> { [ uring, Uring, EuroSign, EuroSign ] };
328 1.1 ghen key <UP> { [ dead_caron, dead_caron, dollar, dollar ] };
329 1.1 ghen
330 1.1 ghen // 3. row
331 1.1 ghen key <AB01> { [ y, Y, equal, equal ] };
332 1.1 ghen key <AB02> { [ x, X, slash, slash ] };
333 1.1 ghen key <AB03> { [ c, C, backslash, backslash ] };
334 1.1 ghen key <AB04> { [ v, V, apostrophe, apostrophe ] };
335 1.1 ghen key <AB05> { [ b, B, quotedbl, quotedbl ] };
336 1.1 ghen key <AB06> { [ n, N, exclam, exclam ] };
337 1.1 ghen key <AB07> { [ m, M, question, question ] };
338 1.1 ghen key <LEFT> { [ period, comma, comma, comma ] };
339 1.1 ghen };
340 1.1 ghen
341 1.1 ghen partial alphanumeric_keys
342 1.1 ghen xkb_symbols "cz_qwerty" {
343 1.1 ghen include "nokia_vndr/rx-51(cz)"
344 1.1 ghen
345 1.1 ghen name[Group1] = "Czech - qwerty";
346 1.1 ghen
347 1.1 ghen // Do not use the layout "cz_qwerty" directly if it is the only layout and compat rules enabled.
348 1.1 ghen // There is one compat rule that converts "cz_qwerty" to "pc+cz(qwerty)" which is not correct for RX-51.
349 1.1 ghen // Use either the layout "cz(qwerty)" or the general "cz" with variant "qwerty".
350 1.1 ghen
351 1.1 ghen // 1. row
352 1.1 ghen key <AD06> { [ y, Y, 6, 6 ] };
353 1.1 ghen
354 1.1 ghen // 3. row
355 1.1 ghen key <AB01> { [ z, Z, percent, percent ] };
356 1.1 ghen };
357 1.1 ghen
358 1.1 ghen
359 1.1 ghen
360 1.1 ghen ////////////////////////////////////////////////////////////////////////////////
361 1.1 ghen
362 1.1 ghen partial hidden alphanumeric_keys
363 1.1 ghen xkb_symbols "nordic_base" {
364 1.1 ghen include "nokia_vndr/rx-51(english_base)"
365 1.1 ghen
366 1.1 ghen // 1. row
367 1.1 ghen key <AB08> { [ aring, Aring, equal, equal ] };
368 1.1 ghen
369 1.1 ghen // 2. row
370 1.1 ghen key <AC08> { [ k, K, semicolon, semicolon ] };
371 1.1 ghen key <AC09> { [ l, L, colon, colon ] };
372 1.1 ghen
373 1.1 ghen // 3. row
374 1.1 ghen key <AB01> { [ z, Z, EuroSign, EuroSign ] };
375 1.1 ghen key <AB03> { [ c, C, sterling, sterling ] };
376 1.1 ghen key <LEFT> { [ period, comma, comma, comma ] };
377 1.1 ghen };
378 1.1 ghen
379 1.1 ghen partial hidden alphanumeric_keys
380 1.1 ghen xkb_symbols "english_base" {
381 1.1 ghen
382 1.1 ghen // 1. row
383 1.1 ghen key <AD01> { [ q, Q, 1, 1 ] };
384 1.1 ghen key <AD02> { [ w, W, 2, 2 ] };
385 1.1 ghen key <AD03> { [ e, E, 3, 3 ] };
386 1.1 ghen key <AD04> { [ r, R, 4, 4 ] };
387 1.1 ghen key <AD05> { [ t, T, 5, 5 ] };
388 1.1 ghen key <AD06> { [ y, Y, 6, 6 ] };
389 1.1 ghen key <AD07> { [ u, U, 7, 7 ] };
390 1.1 ghen key <AD08> { [ i, I, 8, 8 ] };
391 1.1 ghen key <AD09> { [ o, O, 9, 9 ] };
392 1.1 ghen key <AD10> { [ p, P, 0, 0 ] };
393 1.1 ghen key <AB08> { [ comma, semicolon, equal, equal ] };
394 1.1 ghen
395 1.1 ghen // 2. row
396 1.1 ghen key <AC01> { [ a, A, asterisk, asterisk ] };
397 1.1 ghen key <AC02> { [ s, S, plus, plus ] };
398 1.1 ghen key <AC03> { [ d, D, numbersign, numbersign ] };
399 1.1 ghen key <AC04> { [ f, F, minus, minus ] };
400 1.1 ghen key <AC05> { [ g, G, underscore, underscore ] };
401 1.1 ghen key <AC06> { [ h, H, parenleft, parenleft ] };
402 1.1 ghen key <AC07> { [ j, J, parenright, parenright ] };
403 1.1 ghen key <AC08> { [ k, K, ampersand, ampersand ] };
404 1.1 ghen key <AC09> { [ l, L, exclam, exclam ] };
405 1.1 ghen key <AB09> { [ period, colon, question, question ] };
406 1.1 ghen
407 1.1 ghen // 3. row
408 1.1 ghen key <AB01> { [ z, Z, sterling, sterling ] };
409 1.1 ghen key <AB02> { [ x, X, dollar, dollar ] };
410 1.1 ghen key <AB03> { [ c, C, EuroSign, EuroSign ] };
411 1.1 ghen key <AB04> { [ v, V, slash, slash ] };
412 1.1 ghen key <AB05> { [ b, B, backslash, backslash ] };
413 1.1 ghen key <AB06> { [ n, N, quotedbl, quotedbl ] };
414 1.1 ghen key <AB07> { [ m, M, apostrophe, apostrophe ] };
415 1.1 ghen key <SPCE> { [ space, space, at, at ] };
416 1.1 ghen };
417 1.1 ghen
418 1.1 ghen partial hidden alphanumeric_keys
419 1.1 ghen xkb_symbols "common_keys" {
420 1.1 ghen // all other common keys
421 1.1 ghen
422 1.1 ghen key <BKSP> { [ BackSpace ] };
423 1.1 ghen key <TAB> { [ Tab ] };
424 1.1 ghen
425 1.1 ghen // broken UI spec.
426 1.1 ghen key <RTRN> { [ KP_Enter ] };
427 1.1 ghen
428 1.1 ghen key <KPEN> { [ Return ] };
429 1.1 ghen key <ESC> { [ Escape ] };
430 1.1 ghen
431 1.1 ghen key <FK01> { [ F1 ] };
432 1.1 ghen key <FK02> { [ F2 ] };
433 1.1 ghen key <FK03> { [ F3 ] };
434 1.1 ghen key <FK04> { [ F4 ] };
435 1.1 ghen key <FK05> { [ F5 ] };
436 1.1 ghen key <FK06> { [ F6 ] };
437 1.1 ghen
438 1.1 ghen // Swap +/- keys intentionally. The VOL+/VOL- keys are located physically
439 1.1 ghen // on left/right and up/down in landscape/portrait orientation. This does
440 1.1 ghen // not feel natural for the user and therefore we want the VOL+/VOL- keys
441 1.1 ghen // map to -/+.
442 1.1 ghen //
443 1.1 ghen // The only exception is an active call in portrait mode where we want to
444 1.1 ghen // use the real meanings of the keys. This special case and management of
445 1.1 ghen // +/- keys in general is handled in maemo-statusmenu-volume.
446 1.1 ghen key <FK07> { [ F8 ] };
447 1.1 ghen key <FK08> { [ F7 ] };
448 1.1 ghen
449 1.1 ghen key <FK09> { [ F9 ] };
450 1.1 ghen key <FK10> { [ F10 ] };
451 1.1 ghen key <FK11> { [ F11 ] };
452 1.1 ghen };
453 1.1 ghen
454 1.1 ghen partial hidden alphanumeric_keys modifier_keys
455 1.1 ghen xkb_symbols "modifiers" {
456 1.1 ghen // Shift switches between current level and level+1
457 1.1 ghen key <LFSH> {
458 1.1 ghen type[Group1] = "ONE_LEVEL",
459 1.1 ghen symbols[Group1] = [ Shift_L ]
460 1.1 ghen };
461 1.1 ghen modifier_map Shift { Shift_L };
462 1.1 ghen
463 1.1 ghen // Fn+Ctrl virtual symbol table (Multi_key)
464 1.1 ghen // Ctrl+Space switches between 1st and 5th level (hardcoded in hildon)
465 1.1 ghen key <LCTL> {
466 1.1 ghen type[Group1] = "FOUR_LEVEL",
467 1.1 ghen symbols[Group1] = [ Control_L, Control_L, Multi_key, Multi_key ]
468 1.1 ghen };
469 1.1 ghen modifier_map Control { Control_L };
470 1.1 ghen
471 1.1 ghen // Fn key (right alt) switches to 3rd level
472 1.1 ghen include "level3(ralt_switch)"
473 1.1 ghen };
474 1.1 ghen
475 1.1 ghen partial hidden alphanumeric_keys
476 1.1 ghen xkb_symbols "arrows_2btns" {
477 1.1 ghen // rx-51 specific arrows mapping
478 1.1 ghen // normal 2nd level must not be enumerated to allow text selection with Shift key
479 1.1 ghen key <DOWN> { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Left, Up ] };
480 1.1 ghen key <RGHT> { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Right, Down ] };
481 1.1 ghen };
482 1.1 ghen
483 1.1 ghen partial hidden alphanumeric_keys
484 1.1 ghen xkb_symbols "arrows_4btns" {
485 1.1 ghen // standard arrows mapping
486 1.1 ghen // normal 2nd level must not be enumerated to allow text selection with Shift key
487 1.1 ghen key <UP> { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Up ] };
488 1.1 ghen key <LEFT> { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Left ] };
489 1.1 ghen key <DOWN> { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Down ] };
490 1.1 ghen key <RGHT> { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Right ] };
491 1.1 ghen };
492