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