aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/xkeyboard-config/symbols/nokia_vndr
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2010-07-13 07:48:55 +0000
committermarha <marha@users.sourceforge.net>2010-07-13 07:48:55 +0000
commitd8f81c980a46279ac619312a914b563144894512 (patch)
tree3d2dce1c24fa37edf81c47af2311dbaf56a763f6 /xorg-server/xkeyboard-config/symbols/nokia_vndr
parent1812c17dc8e8f071d8731716849957e97bb2b974 (diff)
downloadvcxsrv-d8f81c980a46279ac619312a914b563144894512.tar.gz
vcxsrv-d8f81c980a46279ac619312a914b563144894512.tar.bz2
vcxsrv-d8f81c980a46279ac619312a914b563144894512.zip
Renamed xkbdata.src also on trunk since the current merging of subversion will loose all the changes in xkbdata.src when the directory is renamed on the source branch.
Diffstat (limited to 'xorg-server/xkeyboard-config/symbols/nokia_vndr')
-rw-r--r--xorg-server/xkeyboard-config/symbols/nokia_vndr/Makefile.am6
-rw-r--r--xorg-server/xkeyboard-config/symbols/nokia_vndr/makefile14
-rw-r--r--xorg-server/xkeyboard-config/symbols/nokia_vndr/rx-44303
-rw-r--r--xorg-server/xkeyboard-config/symbols/nokia_vndr/rx-51491
-rw-r--r--xorg-server/xkeyboard-config/symbols/nokia_vndr/su-8w484
5 files changed, 1298 insertions, 0 deletions
diff --git a/xorg-server/xkeyboard-config/symbols/nokia_vndr/Makefile.am b/xorg-server/xkeyboard-config/symbols/nokia_vndr/Makefile.am
new file mode 100644
index 000000000..71200ec4d
--- /dev/null
+++ b/xorg-server/xkeyboard-config/symbols/nokia_vndr/Makefile.am
@@ -0,0 +1,6 @@
+symbolsdir = $(xkb_base)/symbols/nokia_vndr
+
+dist_symbols_DATA = \
+rx-44 \
+rx-51 \
+su-8w
diff --git a/xorg-server/xkeyboard-config/symbols/nokia_vndr/makefile b/xorg-server/xkeyboard-config/symbols/nokia_vndr/makefile
new file mode 100644
index 000000000..f3719bbac
--- /dev/null
+++ b/xorg-server/xkeyboard-config/symbols/nokia_vndr/makefile
@@ -0,0 +1,14 @@
+ifeq ($(MAKESERVER),1)
+$(error Please do not specify MAKESERVER=1)
+endif
+
+DESTDIR=$(MHMAKECONF)\xorg-server\xkbdata\symbols\nokia_vndr
+
+dist_symbols_DATA = \
+rx-44 \
+rx-51 \
+su-8w
+
+DATA_FILES=$(dist_symbols_DATA:%=$(DESTDIR)\%)
+
+include ..\..\xkbrules.mak
diff --git a/xorg-server/xkeyboard-config/symbols/nokia_vndr/rx-44 b/xorg-server/xkeyboard-config/symbols/nokia_vndr/rx-44
new file mode 100644
index 000000000..515b69eef
--- /dev/null
+++ b/xorg-server/xkeyboard-config/symbols/nokia_vndr/rx-44
@@ -0,0 +1,303 @@
+partial alphanumeric_keys
+xkb_symbols "us" {
+ name[Group1] = "U.S. English";
+
+ include "nokia_vndr/rx-44(base)"
+
+ key <AC01> { [ a, A, exclam, exclam ] };
+ key <AC02> { [ s, S, quotedbl, quotedbl ] };
+ key <AC03> { [ d, D, at, at ] };
+ key <AC04> { [ f, F, numbersign, numbersign ] };
+ key <AC05> { [ g, G, backslash, backslash ] };
+ key <AC06> { [ h, H, slash, slash ] };
+ key <AC07> { [ j, J, parenleft, parenleft ] };
+ key <AC08> { [ k, K, parenright, parenright ] };
+ key <AC09> { [ l, L, asterisk, asterisk ] };
+ key <AC11> { [ apostrophe, question, question, question ] };
+
+ key <AB01> { [ z, Z, yen, yen ] };
+ key <AB02> { [ x, X, asciicircum, asciicircum ] };
+ key <AB03> { [ c, C, asciitilde, asciitilde ] };
+ key <AB04> { [ v, V, percent, percent ] };
+ key <AB05> { [ b, B, ampersand, ampersand ] };
+ key <AB06> { [ n, N, dollar, dollar ] };
+ key <AB07> { [ m, M, EuroSign, EuroSign ] };
+ key <AC10> { [ semicolon, colon, sterling, sterling ] };
+ key <AE11> { [ minus, underscore, underscore, underscore ] };
+ key <AE12> { [ plus, equal, equal, equal ] };
+
+ key <AB08> { [ comma, less, comma, less ] };
+ key <AB09> { [ period, greater, period, greater ] };
+};
+
+
+
+partial alphanumeric_keys
+xkb_symbols "fisenoda" {
+ name[Group1] = "Finnish/Swedish/Norwegian/Danish";
+
+ include "nokia_vndr/rx-44(base)"
+
+ key <AC01> { [ a, A, exclam, exclam ] };
+ key <AC02> { [ s, S, quotedbl, quotedbl ] };
+ key <AC03> { [ d, D, at, at ] };
+ key <AC04> { [ f, F, numbersign, numbersign ] };
+ key <AC05> { [ g, G, asterisk, asterisk ] };
+ key <AC06> { [ h, H, backslash, backslash ] };
+ key <AC07> { [ j, J, slash, slash ] };
+ key <AC08> { [ k, K, parenleft, parenleft ] };
+ key <AC09> { [ l, L, parenright, parenright ] };
+ key <AC11> { [ aring, Aring, question, question ] };
+
+ key <AB01> { [ z, Z, EuroSign, EuroSign ] };
+ key <AB02> { [ x, X, asciitilde, asciitilde ] };
+ key <AB03> { [ c, C, percent, percent ] };
+ key <AB04> { [ v, V, ampersand, ampersand ] };
+ key <AB05> { [ b, B, plus, plus ] };
+ key <AB06> { [ n, N, less, less ] };
+ key <AB07> { [ m, M, greater, greater ] };
+ key <AC10> { type="EIGHT_LEVEL", [ oslash, Oslash, equal, equal, odiaeresis, Odiaeresis, equal, equal ] };
+ key <AE11> { type="EIGHT_LEVEL", [ ae, AE, apostrophe, apostrophe, adiaeresis, Adiaeresis, apostrophe, apostrophe ] };
+ key <AE12> { [ minus, underscore, underscore, underscore ] };
+
+ key <AB08> { [ comma, semicolon, comma, semicolon ] };
+ key <AB09> { [ period, colon, period, colon ] };
+};
+
+
+
+partial alphanumeric_keys
+xkb_symbols "ptes" {
+ name[Group1] = "Portuguese/Spanish";
+
+ include "nokia_vndr/rx-44(base)"
+
+ key <AC01> { [ a, A, exclam, exclam ] };
+ key <AC02> { [ s, S, quotedbl, quotedbl ] };
+ key <AC03> { [ d, D, at, at ] };
+ key <AC04> { [ f, F, numbersign, numbersign ] };
+ key <AC05> { [ g, G, asterisk, asterisk ] };
+ key <AC06> { [ h, H, backslash, backslash ] };
+ key <AC07> { [ j, J, slash, slash ] };
+ key <AC08> { [ k, K, parenleft, parenleft ] };
+ key <AC09> { [ l, L, parenright, parenright ] };
+ key <AC11> { [ dead_acute, dead_grave, dead_diaeresis, dead_diaeresis ] };
+
+ key <AB01> { [ z, Z, EuroSign, EuroSign ] };
+ key <AB02> { [ x, X, percent, percent ] };
+ key <AB03> { [ c, C, ampersand, ampersand ] };
+ key <AB04> { [ v, V, exclamdown, exclamdown ] };
+ key <AB05> { [ b, B, apostrophe, apostrophe ] };
+ key <AB06> { [ n, N, plus, plus ] };
+ key <AB07> { [ m, M, equal, equal ] };
+ key <AC10> { [ ccedilla, Ccedilla, questiondown, questiondown ] };
+ key <AE11> { [ ntilde, Ntilde, question, question ] };
+ key <AE12> { [ dead_tilde, dead_circumflex, dead_circumflex, dead_circumflex ] };
+
+ key <AB08> { [ comma, semicolon, minus, minus ] };
+ key <AB09> { [ period, colon, underscore, underscore ] };
+};
+
+
+
+partial alphanumeric_keys
+xkb_symbols "fr" {
+ name[Group1] = "French";
+
+ include "nokia_vndr/rx-44(base)"
+
+ key <AD01> { [ a, A, 1, 1 ] };
+ key <AD02> { [ z, Z, 2, 2 ] };
+
+ key <AC01> { [ q, Q, at, at ] };
+ key <AC02> { [ s, S, percent, percent ] };
+ key <AC03> { [ d, D, ecircumflex, Ecircumflex ] };
+ key <AC04> { [ f, F, eacute, Eacute ] };
+ key <AC05> { [ g, G, egrave, Egrave ] };
+ key <AC06> { [ h, H, oe, OE ] };
+ key <AC07> { [ j, J, parenleft, parenleft ] };
+ key <AC08> { [ k, K, parenright, parenright ] };
+ key <AC09> { [ l, L, agrave, Agrave ] };
+ key <AC11> { [ m, M, ugrave, Ugrave ] };
+
+ key <AB01> { [ w, w, EuroSign, EuroSign ] };
+ key <AB02> { [ x, X, numbersign, numbersign ] };
+ key <AB03> { [ c, C, ccedilla, Ccedilla ] };
+ key <AB04> { [ v, V, plus, plus ] };
+ key <AB05> { [ b, B, equal, equal ] };
+ key <AB06> { [ n, N, quotedbl, quotedbl ] };
+ key <AB07> { [ comma, question, backslash, backslash ] };
+ key <AC10> { [ semicolon, period, minus, minus ] };
+ key <AE11> { [ colon, slash, underscore, underscore ] };
+ key <AE12> { [ apostrophe, apostrophe, mu, mu ] };
+
+ key <AB08> { [ less, greater, less, greater ] };
+ key <AB09> { [ exclam, section, asterisk, asterisk ] };
+};
+
+
+
+partial alphanumeric_keys
+xkb_symbols "de" {
+ name[Group1] = "German";
+
+ include "nokia_vndr/rx-44(base)"
+
+ key <AD06> { [ z, Z, 6, 6 ] };
+
+ key <AC01> { [ a, A, exclam, exclam ] };
+ key <AC02> { [ s, S, quotedbl, quotedbl ] };
+ key <AC03> { [ d, D, at, at ] };
+ key <AC04> { [ f, F, numbersign, numbersign ] };
+ key <AC05> { [ g, G, percent, percent ] };
+ key <AC06> { [ h, H, backslash, backslash ] };
+ key <AC07> { [ j, J, slash, slash ] };
+ key <AC08> { [ k, K, parenleft, parenleft ] };
+ key <AC09> { [ l, L, parenright, parenright ] };
+ key <AC11> { [ udiaeresis, Udiaeresis, question, question ] };
+
+ key <AB01> { [ y, Y, EuroSign, EuroSign ] };
+ key <AB02> { [ x, X, asciitilde, asciitilde ] };
+ key <AB03> { [ c, C, asterisk, asterisk ] };
+ key <AB04> { [ v, V, ampersand, ampersand ] };
+ key <AB05> { [ b, B, plus, plus ] };
+ key <AB06> { [ n, N, less, less ] };
+ key <AB07> { [ m, M, greater, greater ] };
+ key <AC10> { [ odiaeresis, Odiaeresis, equal, equal ] };
+ key <AE11> { [ adiaeresis, Adiaeresis, apostrophe, apostrophe ] };
+ key <AE12> { [ minus, underscore, ssharp, ssharp ] };
+
+ key <AB08> { [ comma, semicolon, comma, semicolon ] };
+ key <AB09> { [ period, colon, period, colon ] };
+};
+
+
+// Levels 5-8 are Russian, levels 1-4 US English, for shortcut reasons.
+partial alphanumeric_keys
+xkb_symbols "ru" {
+ name[Group1] = "Russian";
+
+ include "nokia_vndr/rx-44(base)"
+
+ key <AD01> { type="EIGHT_LEVEL", [ q, Q, 1, 1, Cyrillic_shorti, Cyrillic_SHORTI, 1, 1 ] };
+ key <AD02> { type="EIGHT_LEVEL", [ w, W, 2, 2, Cyrillic_tse, Cyrillic_TSE, 2, 2 ] };
+ key <AD03> { type="EIGHT_LEVEL", [ e, E, 3, 3, Cyrillic_u, Cyrillic_U, 3, 3 ] };
+ key <AD04> { type="EIGHT_LEVEL", [ r, R, 4, 4, Cyrillic_ka, Cyrillic_KA, 4, 4 ] };
+ key <AD05> { type="EIGHT_LEVEL", [ t, T, 5, 5, Cyrillic_ie, Cyrillic_IE, 5, 5 ] };
+ key <AD06> { type="EIGHT_LEVEL", [ y, Y, 6, 6, Cyrillic_en, Cyrillic_EN, 6, 6 ] };
+ key <AD07> { type="EIGHT_LEVEL", [ u, U, 7, 7, Cyrillic_ghe, Cyrillic_GHE, 7, 7 ] };
+ key <AD08> { type="EIGHT_LEVEL", [ i, I, 8, 8, Cyrillic_sha, Cyrillic_SHA, 8, 8 ] };
+ key <AD09> { type="EIGHT_LEVEL", [ o, O, 9, 9, Cyrillic_shcha, Cyrillic_SHCHA, 9, 9 ] };
+ key <AD10> { type="EIGHT_LEVEL", [ p, P, 0, 0, Cyrillic_ze, Cyrillic_ZE, 0, 0 ] };
+
+ key <AC01> { type="EIGHT_LEVEL", [ a, A, exclam, exclam, Cyrillic_ef, Cyrillic_EF, exclam, exclam ] };
+ key <AC02> { type="EIGHT_LEVEL", [ s, S, quotedbl, quotedbl, Cyrillic_yeru, Cyrillic_YERU, quotedbl, quotedbl ] };
+ key <AC03> { type="EIGHT_LEVEL", [ d, D, at, at, Cyrillic_ve, Cyrillic_VE, at, at ] };
+ key <AC04> { type="EIGHT_LEVEL", [ f, F, numbersign, numbersign, Cyrillic_a, Cyrillic_A, numbersign, numbersign ] };
+ key <AC05> { type="EIGHT_LEVEL", [ g, G, backslash, backslash, Cyrillic_pe, Cyrillic_PE, backslash, backslash ] };
+ key <AC06> { type="EIGHT_LEVEL", [ h, H, slash, slash, Cyrillic_er, Cyrillic_ER, slash, slash ] };
+ key <AC07> { type="EIGHT_LEVEL", [ j, J, parenleft, parenleft, Cyrillic_o, Cyrillic_O, parenleft, parenleft ] };
+ key <AC08> { type="EIGHT_LEVEL", [ k, K, parenright, parenright, Cyrillic_el, Cyrillic_EL, parenright, parenright ] };
+ key <AC09> { type="EIGHT_LEVEL", [ l, L, colon, colon, Cyrillic_de, Cyrillic_DE, colon, colon ] };
+ key <AC11> { type="EIGHT_LEVEL", [ NoSymbol, NoSymbol, semicolon, semicolon, Cyrillic_zhe, Cyrillic_ZHE, semicolon, semicolon ] };
+
+ key <AB01> { type="EIGHT_LEVEL", [ z, Z, underscore, underscore, Cyrillic_ya, Cyrillic_YA, minus, minus ] };
+ key <AB02> { type="EIGHT_LEVEL", [ x, X, percent, percent, Cyrillic_che, Cyrillic_CHE, percent, percent ] };
+ key <AB03> { type="EIGHT_LEVEL", [ c, C, 0x1002116, 0x1002116, Cyrillic_es, Cyrillic_ES, 0x1002116, 0x1002116 ] };
+ key <AB04> { type="EIGHT_LEVEL", [ v, V, equal, equal, Cyrillic_em, Cyrillic_EM, equal, equal ] };
+ key <AB05> { type="EIGHT_LEVEL", [ b, B, ampersand, ampersand, Cyrillic_i, Cyrillic_I, ampersand, ampersand ] };
+ key <AB06> { type="EIGHT_LEVEL", [ n, N, asterisk, asterisk, Cyrillic_te, Cyrillic_TE, asterisk, asterisk ] };
+ key <AB07> { type="EIGHT_LEVEL", [ m, M, apostrophe, apostrophe, Cyrillic_softsign, Cyrillic_SOFTSIGN, apostrophe, apostrophe ] };
+ key <AC10> { type="EIGHT_LEVEL", [ NoSymbol, NoSymbol, minus, minus, Cyrillic_be, Cyrillic_BE, minus, minus ] };
+ key <AE11> { type="EIGHT_LEVEL", [ NoSymbol, NoSymbol, question, question, Cyrillic_yu, Cyrillic_YU, question, question ] };
+ key <AE12> { type="EIGHT_LEVEL", [ NoSymbol, NoSymbol, Cyrillic_hardsign, Cyrillic_HARDSIGN, Cyrillic_ha, Cyrillic_HA, Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
+
+ key <AB08> { type="EIGHT_LEVEL", [ period, comma, period, comma, period, comma, period, comma ] };
+ key <AB09> { type="EIGHT_LEVEL", [ NoSymbol, NoSymbol, Cyrillic_io, Cyrillic_IO, Cyrillic_e, Cyrillic_E, Cyrillic_io, Cyrillic_IO ] };
+};
+
+
+
+partial alphanumeric_keys
+xkb_symbols "it" {
+ name[Group1] = "Italian";
+
+ include "nokia_vndr/rx-44(base)"
+
+ key <AC01> { [ a, A, exclam, exclam ] };
+ key <AC02> { [ s, S, quotedbl, quotedbl ] };
+ key <AC03> { [ d, D, at, at ] };
+ key <AC04> { [ f, F, numbersign, numbersign ] };
+ key <AC05> { [ g, G, asterisk, asterisk ] };
+ key <AC06> { [ h, H, backslash, backslash ] };
+ key <AC07> { [ j, J, slash, slash ] };
+ key <AC08> { [ k, K, parenleft, parenleft ] };
+ key <AC09> { [ l, L, parenright, parenright ] };
+ key <AC11> { [ apostrophe, question, igrave, Igrave ] };
+
+ key <AB01> { [ z, Z, EuroSign, EuroSign ] };
+ key <AB02> { [ x, X, asciitilde, asciitilde ] };
+ key <AB03> { [ c, C, ampersand, ampersand ] };
+ key <AB04> { [ v, V, equal, equal ] };
+ key <AB05> { [ b, B, less, less ] };
+ key <AB06> { [ n, N, greater, greater ] };
+ key <AB07> { [ m, M, plus, plus ] };
+ key <AC10> { [ eacute, Eacute, ograve, Ograve ] };
+ key <AE11> { [ egrave, Egrave, agrave, Agrave ] };
+ key <AE12> { [ minus, underscore, ugrave, Ugrave ] };
+
+ key <AB08> { [ comma, semicolon, comma, semicolon ] };
+ key <AB09> { [ period, colon, period, colon ] };
+};
+
+partial default alphanumeric_keys
+xkb_symbols "base" {
+ key <AD01> { [ q, Q, 1, 1 ] };
+ key <AD02> { [ w, W, 2, 2 ] };
+ key <AD03> { [ e, E, 3, 3 ] };
+ key <AD04> { [ r, R, 4, 4 ] };
+ key <AD05> { [ t, T, 5, 5 ] };
+ key <AD06> { [ y, Y, 6, 6 ] };
+ key <AD07> { [ u, U, 7, 7 ] };
+ key <AD08> { [ i, I, 8, 8 ] };
+ key <AD09> { [ o, O, 9, 9 ] };
+ key <AD10> { [ p, P, 0, 0 ] };
+ key <BKSP> { [ BackSpace, BackSpace, BackSpace, BackSpace ] };
+
+ // broken UI spec.
+ key <RTRN> { [ KP_Enter, KP_Enter, KP_Enter, KP_Enter ] };
+
+ key <COMP> { [ Multi_key, Multi_key, Multi_key, Multi_key ] };
+ key <LFSH> { [ Shift_L, Shift_L, Shift_L, Shift_L ] };
+ key <FN> { [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Shift ] };
+ key <SPCE> { [ space, space, space, space ] };
+ key <RCTL> { [ Control_R, Control_R, Control_R, Control_R ] };
+ key <TAB> { [ Tab, Tab, Tab, Tab ] };
+
+ modifier_map Shift { Shift_L };
+ modifier_map Mod5 { ISO_Level3_Shift };
+ modifier_map Control { Control_R };
+
+ key <KPEN> { [ Return ] };
+ key <UP> { [ Up ] };
+ key <DOWN> { [ Down ] };
+ key <LEFT> { [ Left ] };
+ key <RGHT> { [ Right ] };
+
+ key <ESC> { [ Escape ] };
+ key <FK01> { [ F1 ] };
+ key <FK02> { [ F2 ] };
+ key <FK03> { [ F3 ] };
+ key <FK04> { [ F4 ] };
+ key <FK05> { [ F5 ] };
+ key <FK06> { [ F6 ] };
+ key <FK07> { [ F7 ] };
+ key <FK08> { [ F8 ] };
+ key <FK09> { [ F9 ] };
+ key <FK10> { [ F10 ] };
+ key <FK11> { [ F11 ] };
+ key <FK12> { [ F12 ] };
+
+ // generated from the headset, must always be in the map.
+ key <I29> { [ XF86Phone ] };
+};
diff --git a/xorg-server/xkeyboard-config/symbols/nokia_vndr/rx-51 b/xorg-server/xkeyboard-config/symbols/nokia_vndr/rx-51
new file mode 100644
index 000000000..fd98fbf28
--- /dev/null
+++ b/xorg-server/xkeyboard-config/symbols/nokia_vndr/rx-51
@@ -0,0 +1,491 @@
+default partial alphanumeric_keys
+xkb_symbols "common" {
+ include "nokia_vndr/rx-51(common_keys)"
+ include "nokia_vndr/rx-51(modifiers)"
+
+ // This section should not be included by any other section.
+ // It's referenced only once by rule file to allow multiple layout configurations.
+
+ // More than one layout at the same time could be set for instance as follows:
+ // setxkbmap -rules evdev \
+ // -model nokiarx51 \
+ // -option grp:ctrl_shift_toggle \
+ // -layout us,cz \
+ // -variant ",qwerty"
+
+ // Notice the similarity:
+ // "pc+us+cz(qwerty):2+grp:XYZ" vs.
+ // "nokia_vndr/rx-51(common)+nokia_vndr/rx-51(us)+nokia_vndr/rx-51(cz_qwerty):2+grp:XYZ"
+ // where XYZ is one of xkb_symbols section usually located in file symbols/group.
+
+ // Bear in mind that option XYZ could replace current keys configuration!!!
+
+ // For instance using symbols/group(ctrl_shift_toggle) redefines LCTL and LFSH keys
+ // which may disallow opening of virtual symbol table (Multi_key).
+ // Fortunately the Multi_key is defined in 3rd and 4th level a ctrl_shift_toggle
+ // redefines first two levels only. But RX-51 has not right Ctrl nor Shift therefore
+ // pressing Ctrl+Shift will switch to previous layout, not to the next one.
+
+ // For RX-51 device there is a lot of restrictions if more than one layout is
+ // is configured at the same time because some modifiers and special cases are
+ // handled by hildon layer (especially with eight-level layout):
+ // - settings may be done from terminal only (GUI doesn't and won't support it)
+ // - virtual symbol table is not updated according to current layout
+ // - for unknown reasons the eight-level layout (nordic,ru) works properly
+ // only if it's configured as first layout (e.g. "ru,us,cz" not "us,cz,ru")
+ // otherwise it's not possible to access levels 5-8
+ // - Ctrl+Space related problems:
+ // - If eight-level layout is used as first layout one of eight-level layouts has to
+ // be also chosen in GUI - otherwise the Ctrl+Space "switch" is disabled
+ // - Ctrl+Space has no effect if only four-level layouts are chosen
+ // (don't forget the layout configured in GUI - despite of it's not reachable)
+ // - a few keys in 2nd layer could be mixed with other layouts when Ctrl+Space is "turned on" (why?)
+ // in case eight- and four-level layouts are configured simultaneously
+ // - Ctrl+Space is "turned on" by default and has to be "turned off" for four-level layouts
+ // in case eight- and four-level layouts are configured simultaneously
+ // - four-level layout on first place doesn't work at all when Ctrl+Space is "turned on"
+ // in case the 2nd, 3rd or 4th layout is eight-level layout
+};
+
+////////////////////////////////////////////////////////////////////////////////
+
+partial alphanumeric_keys
+xkb_symbols "us" {
+ include "nokia_vndr/rx-51(english_base)"
+ include "nokia_vndr/rx-51(arrows_4btns)"
+
+ name[Group1] = "U.S. English";
+};
+
+
+
+partial alphanumeric_keys
+xkb_symbols "pl" {
+ include "nokia_vndr/rx-51(english_base)"
+ include "nokia_vndr/rx-51(arrows_4btns)"
+
+ name[Group1] = "Polish";
+};
+
+
+
+partial alphanumeric_keys
+xkb_symbols "fise" {
+ include "nokia_vndr/rx-51(nordic_base)"
+ include "nokia_vndr/rx-51(arrows_2btns)"
+
+ name[Group1] = "Finnish/Swedish";
+
+ // 2. row
+ key <AB09> { [ odiaeresis, Odiaeresis, exclam, exclam ] };
+ key <UP> { [ adiaeresis, Adiaeresis, question, question ] };
+};
+
+
+
+partial alphanumeric_keys
+xkb_symbols "dano" {
+ include "nokia_vndr/rx-51(nordic_base)"
+ include "nokia_vndr/rx-51(arrows_2btns)"
+
+ name[Group1] = "Danish/Norwegian";
+
+ // 2. row
+ key <AB09> { [ oslash, Oslash, exclam, exclam ] };
+ key <UP> { [ ae, AE, question, question ] };
+};
+
+
+
+partial alphanumeric_keys
+xkb_symbols "nordic" {
+ include "nokia_vndr/rx-51(nordic_base)"
+ include "nokia_vndr/rx-51(arrows_2btns)"
+
+ name[Group1] = "Danish/Finnish/Norwegian/Swedish";
+
+ key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";
+
+ // 2. row
+ key <AB09> { [ odiaeresis, Odiaeresis, exclam, exclam, oslash, Oslash, exclam, exclam ] };
+ key <UP> { [ adiaeresis, Adiaeresis, question, question, ae, AE, question, question ] };
+};
+
+
+
+partial alphanumeric_keys
+xkb_symbols "ptes" {
+ include "nokia_vndr/rx-51(english_base)"
+ include "nokia_vndr/rx-51(arrows_2btns)"
+
+ name[Group1] = "Portuguese/Spanish";
+
+ // 1. row
+ key <AB08> { [ dead_acute, dead_acute, dead_grave, dead_grave ] };
+
+ // 2. row
+ key <AC05> { [ g, G, exclamdown, exclamdown ] };
+ key <AC06> { [ h, H, exclam, exclam ] };
+ key <AC07> { [ j, J, questiondown, questiondown ] };
+ key <AC08> { [ k, K, question, question ] };
+ key <AC09> { [ l, L, dead_diaeresis, dead_diaeresis ] };
+ key <AB09> { [ ntilde, Ntilde, dead_tilde, dead_tilde ] };
+ key <UP> { [ ccedilla, Ccedilla, dead_circumflex,dead_circumflex ] };
+
+ // 3. row
+ key <AB01> { [ z, Z, parenleft, parenleft ] };
+ key <AB02> { [ x, X, parenright, parenright ] };
+ key <AB03> { [ c, C, slash, slash ] };
+ key <AB04> { [ v, V, quotedbl, quotedbl ] };
+ key <AB05> { [ b, B, apostrophe, apostrophe ] };
+ key <AB06> { [ n, N, colon, colon ] };
+ key <AB07> { [ m, M, semicolon, semicolon ] };
+ key <LEFT> { [ period, comma, comma, comma ] };
+};
+
+
+
+partial alphanumeric_keys
+xkb_symbols "fr" {
+ include "nokia_vndr/rx-51(english_base)"
+ include "nokia_vndr/rx-51(arrows_2btns)"
+
+ name[Group1] = "French";
+
+ // 1. row
+ key <AD01> { [ a, A, 1, 1 ] };
+ key <AD02> { [ z, Z, 2, 2 ] };
+ key <AB08> { [ agrave, Agrave, ccedilla, Ccedilla ] };
+
+ // 2. row
+ key <AC01> { [ q, Q, asterisk, asterisk ] };
+ key <AC02> { [ s, S, plus, plus ] };
+ key <AC03> { [ d, D, numbersign, numbersign ] };
+ key <AC04> { [ f, F, minus, minus ] };
+ key <AC05> { [ g, G, underscore, underscore ] };
+ key <AC06> { [ h, H, exclam, exclam ] };
+ key <AC07> { [ j, J, question, question ] };
+ key <AC08> { [ k, K, colon, colon ] };
+ key <AC09> { [ l, L, dead_circumflex,dead_circumflex ] };
+ key <AB09> { [ m, M, ugrave, Ugrave ] };
+ key <UP> { [ eacute, Eacute, egrave, Egrave ] };
+
+ // 3. row
+ key <AB01> { [ w, W, EuroSign, EuroSign ] };
+ key <AB03> { [ c, C, parenleft, parenleft ] };
+ key <AB04> { [ v, V, parenright, parenright ] };
+ key <AB05> { [ b, B, slash, slash ] };
+ key <AB07> { [ comma, comma, apostrophe, apostrophe ] };
+ key <LEFT> { [ semicolon, period, period, period ] };
+};
+
+
+
+partial alphanumeric_keys
+xkb_symbols "de" {
+ include "nokia_vndr/rx-51(english_base)"
+ include "nokia_vndr/rx-51(arrows_2btns)"
+
+ name[Group1] = "German";
+
+ // 1. row
+ key <AD06> { [ z, Z, 6, 6 ] };
+ key <AB08> { [ udiaeresis, Udiaeresis, ssharp, ssharp ] };
+
+ // 2. row
+ key <AC08> { [ k, K, semicolon, semicolon ] };
+ key <AC09> { [ l, L, colon, colon ] };
+ key <AB09> { [ odiaeresis, Odiaeresis, exclam, exclam ] };
+ key <UP> { [ adiaeresis, Adiaeresis, question, question ] };
+
+ // 3. row
+ key <AB01> { [ y, Y, EuroSign, EuroSign ] };
+ key <AB03> { [ c, C, equal, equal ] };
+ key <LEFT> { [ period, comma, comma, comma ] };
+};
+
+
+
+partial alphanumeric_keys
+xkb_symbols "ch" {
+ include "nokia_vndr/rx-51(english_base)"
+ include "nokia_vndr/rx-51(arrows_2btns)"
+
+ name[Group1] = "Swiss";
+
+ // 1. row
+ key <AD06> { [ z, Z, 6, 6 ] };
+ key <AB08> { [ udiaeresis, Udiaeresis, egrave, Egrave ] };
+
+ // 2. row
+ key <AC06> { [ h, H, equal, equal ] };
+ key <AC07> { [ j, J, parenleft, parenleft ] };
+ key <AC08> { [ k, K, parenright, parenright ] };
+ key <AC09> { [ l, L, colon, colon ] };
+ key <AB09> { [ odiaeresis, Odiaeresis, eacute, Aacute ] };
+ key <UP> { [ adiaeresis, Adiaeresis, agrave, Agrave ] };
+
+ // 3. row
+ key <AB01> { [ y, Y, question, question ] };
+ key <AB02> { [ x, X, exclam, exclam ] };
+ key <AB03> { [ c, C, ccedilla, Ccedilla ] };
+ key <LEFT> { [ period, comma, comma, comma ] };
+};
+
+
+
+// Levels 5-8 are Russian, levels 1-4 US English, for shortcut reasons.
+partial alphanumeric_keys
+xkb_symbols "ru" {
+ include "nokia_vndr/rx-51(english_base)"
+ include "nokia_vndr/rx-51(arrows_2btns)"
+
+ name[Group1] = "Russian";
+
+ key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";
+
+ // 1. row
+ key <AD01> { [ q, Q, 1, 1, Cyrillic_shorti, Cyrillic_SHORTI, 1, 1 ] };
+ key <AD02> { [ w, W, 2, 2, Cyrillic_tse, Cyrillic_TSE, 2, 2 ] };
+ key <AD03> { [ e, E, 3, 3, Cyrillic_u, Cyrillic_U, 3, 3 ] };
+ key <AD04> { [ r, R, 4, 4, Cyrillic_ka, Cyrillic_KA, 4, 4 ] };
+ key <AD05> { [ t, T, 5, 5, Cyrillic_ie, Cyrillic_IE, 5, 5 ] };
+ key <AD06> { [ y, Y, 6, 6, Cyrillic_en, Cyrillic_EN, 6, 6 ] };
+ key <AD07> { [ u, U, 7, 7, Cyrillic_ghe, Cyrillic_GHE, 7, 7 ] };
+ key <AD08> { [ i, I, 8, 8, Cyrillic_sha, Cyrillic_SHA, 8, 8 ] };
+ key <AD09> { [ o, O, 9, 9, Cyrillic_shcha, Cyrillic_SHCHA, 9, 9 ] };
+ key <AD10> { [ p, P, 0, 0, Cyrillic_ze, Cyrillic_ZE, 0, 0 ] };
+ key <AB08> { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_hardsign, Cyrillic_HARDSIGN, Cyrillic_ha, Cyrillic_HA, Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
+
+ // 2. row
+ key <AC01> { [ a, A, asterisk, asterisk, Cyrillic_ef, Cyrillic_EF, asterisk, asterisk ] };
+ key <AC02> { [ s, S, plus, plus, Cyrillic_yeru, Cyrillic_YERU, plus, plus ] };
+ key <AC03> { [ d, D, numbersign, numbersign, Cyrillic_ve, Cyrillic_VE, numbersign, numbersign ] };
+ key <AC04> { [ f, F, minus, minus, Cyrillic_a, Cyrillic_A, minus, minus ] };
+ key <AC05> { [ g, G, underscore, underscore, Cyrillic_pe, Cyrillic_PE, underscore, underscore ] };
+ key <AC06> { [ h, H, exclam, exclam, Cyrillic_er, Cyrillic_ER, exclam, exclam ] };
+ key <AC07> { [ j, J, question, question, Cyrillic_o, Cyrillic_O, question, question ] };
+ key <AC08> { [ k, K, semicolon, semicolon, Cyrillic_el, Cyrillic_EL, semicolon, semicolon ] };
+ key <AC09> { [ l, L, colon, colon, Cyrillic_de, Cyrillic_DE, colon, colon ] };
+ key <AB09> { [ comma, comma, comma, comma, Cyrillic_zhe, Cyrillic_ZHE, comma, comma ] };
+ key <UP> { [ period, period, period, period, Cyrillic_e, Cyrillic_E, period, period ] };
+
+ // 3. row
+ key <AB01> { [ z, Z, dollar, dollar, Cyrillic_ya, Cyrillic_YA, dollar, dollar ] };
+ key <AB02> { [ x, X, EuroSign, EuroSign, Cyrillic_che, Cyrillic_CHE, EuroSign, EuroSign ] };
+ key <AB03> { [ c, C, slash, slash, Cyrillic_es, Cyrillic_ES, slash, slash ] };
+ key <AB04> { [ v, V, parenleft, parenleft, Cyrillic_em, Cyrillic_EM, parenleft, parenleft ] };
+ key <AB05> { [ b, B, parenright, parenright, Cyrillic_i, Cyrillic_I, parenright, parenright ] };
+ key <AB06> { [ n, N, quotedbl, quotedbl, Cyrillic_te, Cyrillic_TE, quotedbl, quotedbl ] };
+ key <AB07> { [ m, M, apostrophe, apostrophe, Cyrillic_softsign, Cyrillic_SOFTSIGN, apostrophe, apostrophe ] };
+ key <LEFT> { [ Cyrillic_be, Cyrillic_BE, Cyrillic_yu, Cyrillic_YU, Cyrillic_be, Cyrillic_BE, Cyrillic_yu, Cyrillic_YU ] };
+};
+
+
+
+partial alphanumeric_keys
+xkb_symbols "it" {
+ include "nokia_vndr/rx-51(english_base)"
+ include "nokia_vndr/rx-51(arrows_2btns)"
+
+ name[Group1] = "Italian";
+
+ // 1. row
+ key <AB08> { [ egrave, Egrave, eacute, Eacute ] };
+
+ // 2. row
+ key <AC06> { [ h, H, semicolon, semicolon ] };
+ key <AC07> { [ j, J, colon, colon ] };
+ key <AC08> { [ k, K, exclam, exclam ] };
+ key <AC09> { [ l, L, question, question ] };
+ key <AB09> { [ ograve, Ograve, igrave, Igrave ] };
+ key <UP> { [ agrave, Agrave, ugrave, Ugrave ] };
+
+ // 3. row
+ key <AB01> { [ z, Z, EuroSign, EuroSign ] };
+ key <AB02> { [ x, X, parenleft, parenleft ] };
+ key <AB03> { [ c, C, parenright, parenright ] };
+ key <LEFT> { [ period, comma, comma, comma ] };
+};
+
+
+
+partial alphanumeric_keys
+xkb_symbols "cz" {
+ include "nokia_vndr/rx-51(english_base)"
+ include "nokia_vndr/rx-51(arrows_2btns)"
+
+ name[Group1] = "Czech";
+
+ // 1. row
+ key <AD06> { [ z, Z, 6, 6 ] };
+ key <AB08> { [ dead_acute, dead_acute, sterling, sterling ] };
+
+ // 2. row
+ key <AC08> { [ k, K, semicolon, semicolon ] };
+ key <AC09> { [ l, L, colon, colon ] };
+ key <AB09> { [ uring, Uring, EuroSign, EuroSign ] };
+ key <UP> { [ dead_caron, dead_caron, dollar, dollar ] };
+
+ // 3. row
+ key <AB01> { [ y, Y, equal, equal ] };
+ key <AB02> { [ x, X, slash, slash ] };
+ key <AB03> { [ c, C, backslash, backslash ] };
+ key <AB04> { [ v, V, apostrophe, apostrophe ] };
+ key <AB05> { [ b, B, quotedbl, quotedbl ] };
+ key <AB06> { [ n, N, exclam, exclam ] };
+ key <AB07> { [ m, M, question, question ] };
+ key <LEFT> { [ period, comma, comma, comma ] };
+};
+
+partial alphanumeric_keys
+xkb_symbols "cz_qwerty" {
+ include "nokia_vndr/rx-51(cz)"
+
+ name[Group1] = "Czech - qwerty";
+
+ // Do not use the layout "cz_qwerty" directly if it is the only layout and compat rules enabled.
+ // There is one compat rule that converts "cz_qwerty" to "pc+cz(qwerty)" which is not correct for RX-51.
+ // Use either the layout "cz(qwerty)" or the general "cz" with variant "qwerty".
+
+ // 1. row
+ key <AD06> { [ y, Y, 6, 6 ] };
+
+ // 3. row
+ key <AB01> { [ z, Z, percent, percent ] };
+};
+
+
+
+////////////////////////////////////////////////////////////////////////////////
+
+partial hidden alphanumeric_keys
+xkb_symbols "nordic_base" {
+ include "nokia_vndr/rx-51(english_base)"
+
+ // 1. row
+ key <AB08> { [ aring, Aring, equal, equal ] };
+
+ // 2. row
+ key <AC08> { [ k, K, semicolon, semicolon ] };
+ key <AC09> { [ l, L, colon, colon ] };
+
+ // 3. row
+ key <AB01> { [ z, Z, EuroSign, EuroSign ] };
+ key <AB03> { [ c, C, sterling, sterling ] };
+ key <LEFT> { [ period, comma, comma, comma ] };
+};
+
+partial hidden alphanumeric_keys
+xkb_symbols "english_base" {
+
+ // 1. row
+ key <AD01> { [ q, Q, 1, 1 ] };
+ key <AD02> { [ w, W, 2, 2 ] };
+ key <AD03> { [ e, E, 3, 3 ] };
+ key <AD04> { [ r, R, 4, 4 ] };
+ key <AD05> { [ t, T, 5, 5 ] };
+ key <AD06> { [ y, Y, 6, 6 ] };
+ key <AD07> { [ u, U, 7, 7 ] };
+ key <AD08> { [ i, I, 8, 8 ] };
+ key <AD09> { [ o, O, 9, 9 ] };
+ key <AD10> { [ p, P, 0, 0 ] };
+ key <AB08> { [ comma, semicolon, equal, equal ] };
+
+ // 2. row
+ key <AC01> { [ a, A, asterisk, asterisk ] };
+ key <AC02> { [ s, S, plus, plus ] };
+ key <AC03> { [ d, D, numbersign, numbersign ] };
+ key <AC04> { [ f, F, minus, minus ] };
+ key <AC05> { [ g, G, underscore, underscore ] };
+ key <AC06> { [ h, H, parenleft, parenleft ] };
+ key <AC07> { [ j, J, parenright, parenright ] };
+ key <AC08> { [ k, K, ampersand, ampersand ] };
+ key <AC09> { [ l, L, exclam, exclam ] };
+ key <AB09> { [ period, colon, question, question ] };
+
+ // 3. row
+ key <AB01> { [ z, Z, sterling, sterling ] };
+ key <AB02> { [ x, X, dollar, dollar ] };
+ key <AB03> { [ c, C, EuroSign, EuroSign ] };
+ key <AB04> { [ v, V, slash, slash ] };
+ key <AB05> { [ b, B, backslash, backslash ] };
+ key <AB06> { [ n, N, quotedbl, quotedbl ] };
+ key <AB07> { [ m, M, apostrophe, apostrophe ] };
+ key <SPCE> { [ space, space, at, at ] };
+};
+
+partial hidden alphanumeric_keys
+xkb_symbols "common_keys" {
+ // all other common keys
+
+ key <BKSP> { [ BackSpace ] };
+ key <TAB> { [ Tab ] };
+
+ // broken UI spec.
+ key <RTRN> { [ KP_Enter ] };
+
+ key <KPEN> { [ Return ] };
+ key <ESC> { [ Escape ] };
+
+ key <FK01> { [ F1 ] };
+ key <FK02> { [ F2 ] };
+ key <FK03> { [ F3 ] };
+ key <FK04> { [ F4 ] };
+ key <FK05> { [ F5 ] };
+ key <FK06> { [ F6 ] };
+
+ // Swap +/- keys intentionally. The VOL+/VOL- keys are located physically
+ // on left/right and up/down in landscape/portrait orientation. This does
+ // not feel natural for the user and therefore we want the VOL+/VOL- keys
+ // map to -/+.
+ //
+ // The only exception is an active call in portrait mode where we want to
+ // use the real meanings of the keys. This special case and management of
+ // +/- keys in general is handled in maemo-statusmenu-volume.
+ key <FK07> { [ F8 ] };
+ key <FK08> { [ F7 ] };
+
+ key <FK09> { [ F9 ] };
+ key <FK10> { [ F10 ] };
+ key <FK11> { [ F11 ] };
+};
+
+partial hidden alphanumeric_keys modifier_keys
+xkb_symbols "modifiers" {
+ // Shift switches between current level and level+1
+ key <LFSH> {
+ type[Group1] = "ONE_LEVEL",
+ symbols[Group1] = [ Shift_L ]
+ };
+ modifier_map Shift { Shift_L };
+
+ // Fn+Ctrl virtual symbol table (Multi_key)
+ // Ctrl+Space switches between 1st and 5th level (hardcoded in hildon)
+ key <LCTL> {
+ type[Group1] = "FOUR_LEVEL",
+ symbols[Group1] = [ Control_L, Control_L, Multi_key, Multi_key ]
+ };
+ modifier_map Control { Control_L };
+
+ // Fn key (right alt) switches to 3rd level
+ include "level3(ralt_switch)"
+};
+
+partial hidden alphanumeric_keys
+xkb_symbols "arrows_2btns" {
+ // rx-51 specific arrows mapping
+ // normal 2nd level must not be enumerated to allow text selection with Shift key
+ key <DOWN> { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Left, Up ] };
+ key <RGHT> { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Right, Down ] };
+};
+
+partial hidden alphanumeric_keys
+xkb_symbols "arrows_4btns" {
+ // standard arrows mapping
+ // normal 2nd level must not be enumerated to allow text selection with Shift key
+ key <UP> { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Up ] };
+ key <LEFT> { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Left ] };
+ key <DOWN> { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Down ] };
+ key <RGHT> { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Right ] };
+};
diff --git a/xorg-server/xkeyboard-config/symbols/nokia_vndr/su-8w b/xorg-server/xkeyboard-config/symbols/nokia_vndr/su-8w
new file mode 100644
index 000000000..6962aa971
--- /dev/null
+++ b/xorg-server/xkeyboard-config/symbols/nokia_vndr/su-8w
@@ -0,0 +1,484 @@
+partial alphanumeric_keys default
+xkb_symbols "no" {
+ name[Group1]= "Norwegian/Danish";
+
+ include "nokia_vndr/su-8w(base)"
+
+ key <AE01> { [ 1, exclam, dead_circumflex ] };
+ key <AE02> { [ 2, quotedbl, at ] };
+ key <AE03> { [ 3, numbersign, EuroSign ] };
+ key <AE04> { [ 4, currency, dollar ] };
+ key <AE05> { [ 5, percent, sterling ] };
+ key <AE06> { [ 6, ampersand ] };
+ key <AE07> { [ 7, slash, braceleft ] };
+ key <AE08> { [ 8, parenleft, bracketleft ] };
+ key <AE09> { [ 9, parenright, bracketright ] };
+ key <AE10> { [ 0, equal, braceright ] };
+ key <AE11> { [ plus, question ] };
+ key <AE12> { [ dead_acute, dead_grave, backslash ] };
+
+ key <AD01> { [ q, Q, dead_circumflex ] };
+ key <AD02> { [ w, W, at ] };
+ key <AD03> { [ e, E, EuroSign ] };
+ key <AD04> { [ r, R, dollar ] };
+ key <AD05> { [ t, T, sterling ] };
+ key <AD06> { [ y, Y ] };
+ key <AD07> { [ u, U, braceleft ] };
+ key <AD08> { [ i, I, bracketleft ] };
+ key <AD09> { [ o, O, bracketright ] };
+ key <AD10> { [ p, P, braceright ] };
+ key <AD11> { [ aring, Aring ] };
+ key <AD12> { [ ssharp, ssharp, backslash ] };
+
+ key <AC01> { [ a, A ] };
+ key <AC02> { [ s, S ] };
+ key <AC03> { [ d, D ] };
+ key <AC04> { [ f, F ] };
+ key <AC05> { [ g, G ] };
+ key <AC06> { [ h, H ] };
+ key <AC07> { [ j, J ] };
+ key <AC08> { [ k, K ] };
+ key <AC09> { [ l, L ] };
+ key <AC10> { [ oslash, Ooblique ] };
+ key <AC11> { [ ae, AE ] };
+
+ key <AB01> { [ z, Z ] };
+ key <AB02> { [ x, X ] };
+ key <AB03> { [ c, C ] };
+ key <AB04> { [ v, V ] };
+ key <AB05> { [ b, B ] };
+ key <AB06> { [ n, N ] };
+ key <AB07> { [ m, M ] };
+ key <AB08> { [ comma, semicolon, less ] };
+ key <AB09> { [ period, colon, greater ] };
+ key <AB10> { [ minus, underscore, dead_diaeresis ] };
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "no_nodeadkeys" {
+ name[Group1] = "Norwegian/Danish (no dead keys)";
+
+ include "nokia_vndr/su-8w(no)"
+
+ key <AE01> { [ 1, exclam, asciicircum ] };
+ key <AE12> { [ acute, grave, backslash ] };
+ key <AD01> { [ q, Q, asciicircum ] };
+};
+
+partial alphanumeric_keys default
+xkb_symbols "dk" {
+ include "nokia_vndr/su-8w(no)"
+};
+
+partial alphanumeric_keys default
+xkb_symbols "dk_nodeadkeys" {
+ include "nokia_vndr/su-8w(no_nodeadkeys)"
+};
+
+
+
+partial alphanumeric_keys default
+xkb_symbols "de" {
+ name[Group1]= "German";
+ include "nokia_vndr/su-8w(base)"
+
+ key <AE01> { [ 1, exclam, dead_circumflex ] };
+ key <AE02> { [ 2, quotedbl, at ] };
+ key <AE03> { [ 3, numbersign, EuroSign ] };
+ key <AE04> { [ 4, currency, dollar ] };
+ key <AE05> { [ 5, percent, sterling ] };
+ key <AE06> { [ 6, ampersand ] };
+ key <AE07> { [ 7, slash, braceleft ] };
+ key <AE08> { [ 8, parenleft, bracketleft ] };
+ key <AE09> { [ 9, parenright, bracketright ] };
+ key <AE10> { [ 0, equal, braceright ] };
+ key <AE11> { [ plus, question ] };
+ key <AE12> { [ dead_acute, dead_grave, backslash ] };
+
+ key <AD01> { [ q, Q, dead_circumflex ] };
+ key <AD02> { [ w, W, at ] };
+ key <AD03> { [ e, E, EuroSign ] };
+ key <AD04> { [ r, R, dollar ] };
+ key <AD05> { [ t, T, sterling ] };
+ key <AD06> { [ z, Z ] };
+ key <AD07> { [ u, U, braceleft ] };
+ key <AD08> { [ i, I, bracketleft ] };
+ key <AD09> { [ o, O, bracketright ] };
+ key <AD10> { [ p, P, braceright ] };
+ key <AD11> { [ udiaeresis, Udiaeresis ] };
+ key <AD12> { [ ssharp, ssharp, backslash ] };
+
+ key <AC01> { [ a, A ] };
+ key <AC02> { [ s, S ] };
+ key <AC03> { [ d, D ] };
+ key <AC04> { [ f, F ] };
+ key <AC05> { [ g, G ] };
+ key <AC06> { [ h, H ] };
+ key <AC07> { [ j, J ] };
+ key <AC08> { [ k, K ] };
+ key <AC09> { [ l, L ] };
+ key <AC10> { [ odiaeresis, Odiaeresis ] };
+ key <AC11> { [ adiaeresis, Adiaeresis ] };
+
+ key <AB01> { [ y, Y ] };
+ key <AB02> { [ x, X ] };
+ key <AB03> { [ c, C ] };
+ key <AB04> { [ v, V ] };
+ key <AB05> { [ b, B ] };
+ key <AB06> { [ n, N ] };
+ key <AB07> { [ m, M ] };
+ key <AB08> { [ comma, semicolon, less ] };
+ key <AB09> { [ period, colon, greater ] };
+ // XXX Inexplicably, the diaeresis is dead on other layouts, but not
+ // German. Go figure.
+ key <AB10> { [ minus, underscore, diaeresis ] };
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "de_nodeadkeys" {
+ name[Group1] = "German (no dead keys)";
+
+ include "nokia_vndr/su-8w(de)"
+
+ key <AE01> { [ 1, exclam, asciicircum ] };
+ key <AE12> { [ acute, grave, backslash ] };
+ key <AD01> { [ q, Q, asciicircum ] };
+};
+
+
+
+partial alphanumeric_keys default
+xkb_symbols "se" {
+ name[Group1]= "Finnish/Swedish";
+
+ include "nokia_vndr/su-8w(base)"
+
+ key <AE01> { [ 1, exclam, dead_circumflex ] };
+ key <AE02> { [ 2, quotedbl, at ] };
+ key <AE03> { [ 3, numbersign, EuroSign ] };
+ key <AE04> { [ 4, currency, dollar ] };
+ key <AE05> { [ 5, percent, sterling ] };
+ key <AE06> { [ 6, ampersand ] };
+ key <AE07> { [ 7, slash, braceleft ] };
+ key <AE08> { [ 8, parenleft, bracketleft ] };
+ key <AE09> { [ 9, parenright, bracketright ] };
+ key <AE10> { [ 0, equal, braceright ] };
+ key <AE11> { [ plus, question ] };
+ key <AE12> { [ dead_acute, dead_grave, backslash ] };
+
+ key <AD01> { [ q, Q, dead_circumflex ] };
+ key <AD02> { [ w, W, at ] };
+ key <AD03> { [ e, E, EuroSign ] };
+ key <AD04> { [ r, R, dollar ] };
+ key <AD05> { [ t, T, sterling ] };
+ key <AD06> { [ y, Y ] };
+ key <AD07> { [ u, U, braceleft ] };
+ key <AD08> { [ i, I, bracketleft ] };
+ key <AD09> { [ o, O, bracketright ] };
+ key <AD10> { [ p, P, braceright ] };
+ key <AD11> { [ aring, Aring ] };
+ key <AD12> { [ ssharp, ssharp, backslash ] };
+
+ key <AC01> { [ a, A ] };
+ key <AC02> { [ s, S ] };
+ key <AC03> { [ d, D ] };
+ key <AC04> { [ f, F ] };
+ key <AC05> { [ g, G ] };
+ key <AC06> { [ h, H ] };
+ key <AC07> { [ j, J ] };
+ key <AC08> { [ k, K ] };
+ key <AC09> { [ l, L ] };
+ key <AC10> { [ odiaeresis, Odiaeresis ] };
+ key <AC11> { [ adiaeresis, Adiaeresis ] };
+
+ key <AB01> { [ z, Z ] };
+ key <AB02> { [ x, X ] };
+ key <AB03> { [ c, C ] };
+ key <AB04> { [ v, V ] };
+ key <AB05> { [ b, B ] };
+ key <AB06> { [ n, N ] };
+ key <AB07> { [ m, M ] };
+ key <AB08> { [ comma, semicolon, less ] };
+ key <AB09> { [ period, colon, greater ] };
+ key <AB10> { [ minus, underscore, dead_diaeresis ] };
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "se_nodeadkeys" {
+ name[Group1] = "Finnish/Swedish (no dead keys)";
+
+ include "nokia_vndr/su-8w(se)"
+
+ key <AE01> { [ 1, exclam, asciicircum ] };
+ key <AE12> { [ acute, grave, backslash ] };
+ key <AD01> { [ q, Q, asciicircum ] };
+ key <AB10> { [ minus, underscore, diaeresis ] };
+};
+
+partial alphanumeric_keys default
+xkb_symbols "fi" {
+ include "nokia_vndr/su-8w(se)"
+};
+
+xkb_symbols "fi_nodeadkeys" {
+ include "nokia_vndr/su-8w(se_nodeadkeys)"
+};
+
+
+
+// Russian layout on first two levels, US layout on third and fourth.
+partial alphanumeric_keys default
+xkb_symbols "ru" {
+ name[Group1]= "Russian";
+
+ include "nokia_vndr/su-8w(base)"
+
+ // XXX Would be nice if this actually generated a tilde.
+ key <TLDE> { [ Cyrillic_io, Cyrillic_IO, grave ] };
+ key <AE01> { [ 1, exclam, exclam, exclam ] };
+ key <AE02> { [ 2, at, quotedbl, at ] };
+ key <AE03> { [ 3, numbersign, numbersign, numbersign ] };
+ key <AE04> { [ 4, dollar, currency, dollar ] };
+ key <AE05> { [ 5, percent, percent, percent ] };
+ key <AE06> { [ 6, dead_circumflex, ampersand, asciicircum ] };
+ key <AE07> { [ 7, ampersand, slash, ampersand ] };
+ key <AE08> { [ 8, asterisk, parenleft, asterisk ] };
+ key <AE09> { [ 9, parenleft, parenright, parenleft ] };
+ key <AE10> { [ 0, parenright, equal, parenright ] };
+ key <AE11> { [ minus, underscore, plus, question ] };
+ key <AE12> { [ equal, plus, equal, plus ] };
+
+ key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI, q, Q ] };
+ key <AD02> { [ Cyrillic_tse, Cyrillic_TSE, w, W ] };
+ key <AD03> { [ Cyrillic_u, Cyrillic_U, e, E ] };
+ key <AD04> { [ Cyrillic_ka, Cyrillic_KA, r, R ] };
+ key <AD05> { [ Cyrillic_ie, Cyrillic_IE, t, T ] };
+ key <AD06> { [ Cyrillic_en, Cyrillic_EN, y, Y ] };
+ key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE, u, U ] };
+ key <AD08> { [ Cyrillic_sha, Cyrillic_SHA, i, I ] };
+ key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA, o, O ] };
+ key <AD10> { [ Cyrillic_ze, Cyrillic_ZE, p, P ] };
+ key <AD11> { [ Cyrillic_ha, Cyrillic_HA, bracketleft, braceleft ] };
+ key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, bracketright, braceright ] };
+
+ key <AC01> { [ Cyrillic_ef, Cyrillic_EF, a, A ] };
+ key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU, s, S ] };
+ key <AC03> { [ Cyrillic_ve, Cyrillic_VE, d, D ] };
+ key <AC04> { [ Cyrillic_a, Cyrillic_A, f, F ] };
+ key <AC05> { [ Cyrillic_pe, Cyrillic_PE, g, G ] };
+ key <AC06> { [ Cyrillic_er, Cyrillic_ER, h, H ] };
+ key <AC07> { [ Cyrillic_o, Cyrillic_O, j, J ] };
+ key <AC08> { [ Cyrillic_el, Cyrillic_EL, k, K ] };
+ key <AC09> { [ Cyrillic_de, Cyrillic_DE, l, L ] };
+ key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE, semicolon, colon ] };
+ key <AC11> { [ Cyrillic_e, Cyrillic_E, apostrophe, quotedbl ] };
+
+ key <AB01> { [ Cyrillic_ya, Cyrillic_YA, z, Z ] };
+ key <AB02> { [ Cyrillic_che, Cyrillic_CHE, x, X ] };
+ key <AB03> { [ Cyrillic_es, Cyrillic_ES, c, C ] };
+ key <AB04> { [ Cyrillic_em, Cyrillic_EM, v, V ] };
+ key <AB05> { [ Cyrillic_i, Cyrillic_I, b, B ] };
+ key <AB06> { [ Cyrillic_te, Cyrillic_TE, n, N ] };
+ key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, m, M ] };
+ key <AB08> { [ Cyrillic_be, Cyrillic_BE, comma, less ] };
+ key <AB09> { [ Cyrillic_yu, Cyrillic_YU, period, greater ] };
+ key <AB10> { [ slash, question, slash, question ] };
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "ru_nodeadkeys" {
+ name[Group1] = "Russian - no dead keys";
+
+ include "nokia_vndr/su-8w(ru)"
+
+ key <AE06> { [ 6, asciicircum, ampersand, asciicircum ] };
+};
+
+
+
+partial alphanumeric_keys default
+xkb_symbols "us" {
+ name[Group1]= "U.S. English - International";
+
+ include "nokia_vndr/su-8w(base)"
+
+ // I can't believe it's not us(intl).
+ key <AE01> { [ 1, exclam, exclamdown ] };
+ key <AE02> { [ 2, at, twosuperior ] };
+ key <AE03> { [ 3, numbersign ] };
+ key <AE04> { [ 4, dollar, currency ] };
+ key <AE05> { [ 5, percent, EuroSign ] };
+ key <AE06> { [ 6, asciicircum, onequarter ] };
+ key <AE07> { [ 7, ampersand, onehalf ] };
+ key <AE08> { [ 8, asterisk, threequarters ] };
+ key <AE09> { [ 9, parenleft, leftsinglequotemark ] };
+ key <AE10> { [ 0, parenright, rightsinglequotemark ] };
+ key <AE11> { [ minus, underscore, yen ] };
+ key <AE12> { [ equal, plus, multiply ] };
+
+ key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] };
+ key <AD02> { [ w, W, aring, Aring ] };
+ key <AD03> { [ e, E, eacute, Eacute ] };
+ key <AD04> { [ r, R, registered ] };
+ key <AD05> { [ t, T, thorn, THORN ] };
+ key <AD06> { [ y, Y, udiaeresis, Udiaeresis ] };
+ key <AD07> { [ u, U, uacute, Uacute ] };
+ key <AD08> { [ i, I, iacute, Iacute ] };
+ key <AD09> { [ o, O, oacute, Oacute ] };
+ key <AD10> { [ p, P, odiaeresis, Odiaeresis ] };
+ key <AD11> { [ bracketleft, braceleft, guillemotleft ] };
+ key <AD12> { [ bracketright, braceright, guillemotright ] };
+
+ key <AC01> { [ a, A, aacute, Aacute ] };
+ key <AC02> { [ s, S, ssharp, section ] };
+ key <AC03> { [ d, D, eth, ETH ] };
+ key <AC04> { [ f, F ] };
+ key <AC05> { [ g, G ] };
+ key <AC06> { [ h, H ] };
+ key <AC07> { [ j, J ] };
+ key <AC08> { [ k, K ] };
+ key <AC09> { [ l, L, oslash, Ooblique ] };
+ key <AC10> { [ semicolon, colon, paragraph, degree ] };
+ // XXX Not entirely sure if fourth level is quotedbl or diaeresis.
+ // The former makes a lot more sense.
+ key <AC11> { [ dead_acute, dead_diaeresis, apostrophe, quotedbl ] };
+
+ key <AB01> { [ z, Z, ae, AE ] };
+ key <AB02> { [ x, X ] };
+ key <AB03> { [ c, C, copyright ] };
+ key <AB04> { [ v, V ] };
+ key <AB05> { [ b, B ] };
+ key <AB06> { [ n, N, ntilde, Ntilde ] };
+ key <AB07> { [ m, M, mu ] };
+ key <AB08> { [ comma, less, ccedilla, Ccedilla ] };
+ key <AB09> { [ period, greater ] };
+ key <AB10> { [ slash, question, questiondown ] };
+
+ include "level3(ralt_switch)"
+};
+
+partial alphanumeric_keys
+xkb_symbols "us_nodeadkeys" {
+ name[Group1] = "U.S. English - no dead keys";
+
+ include "nokia_vndr/su-8w(us_intl)"
+
+ // XXX Not entirely sure if second level is quotedbl or diaeresis.
+ // The former makes a lot more sense.
+ key <AC10> { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] };
+};
+
+
+
+partial default alphanumeric_keys
+xkb_symbols "base" {
+ // forked from from pc(pc105); madness.
+ key <ESC> { [ Escape ] };
+
+ // the extra key on most European keyboards
+ key <LSGT> { [ less, greater, bar, brokenbar ] };
+
+ // these keys are common to all layouts
+ key <BKSL> { [ backslash, bar ] };
+ key <SPCE> { [ space ] };
+
+ key <BKSP> { [ BackSpace ] };
+
+ key <TAB> { [ Tab, ISO_Left_Tab ] };
+ key <RTRN> { [ Return ] };
+ // we don't ever generate this key, but the VKB needs it always.
+ key <KPEN> { [ KP_Enter ] };
+ // generated from the headset, must always be in the map.
+ key <I29> { [ XF86Phone ] };
+
+ key <CAPS> { [ Caps_Lock ] };
+
+ key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
+
+ key <LFSH> { [ Shift_L ] };
+ key <LCTL> { [ Control_L ] };
+ key <LALT> { [ Alt_L, Meta_L ] };
+ key <LWIN> { [ Super_L ] };
+
+ key <RTSH> { [ Shift_R ] };
+ key <RCTL> { [ Control_R ] };
+ key <RALT> { [ Alt_R, Meta_R ] };
+ key <RWIN> { [ Super_R ] };
+
+ key <MENU> { [ Menu ] };
+
+ key <FK01> { [ F1 ] };
+ key <FK02> { [ F2 ] };
+ key <FK03> { [ F3 ] };
+ key <FK04> { [ F4 ] };
+ key <FK05> { [ F5 ] };
+ key <FK06> { [ F6 ] };
+ key <FK07> { [ F7 ] };
+ key <FK08> { [ F8 ] };
+ key <FK09> { [ F9 ] };
+ key <FK10> { [ F11 ] };
+ key <FK11> { [ F10 ] };
+ key <FK12> { [ F12 ] };
+
+ // begin modifier mappings
+ modifier_map Shift { Shift_L, Shift_R };
+ modifier_map Lock { Caps_Lock, ISO_Lock };
+ modifier_map Control{ Control_L, Control_R };
+ modifier_map Mod2 { Num_Lock };
+
+ // Fake keys for virtual<->real modifiers mapping
+ key <LVL3> { [ ISO_Level3_Shift ] };
+ key <MDSW> { [ Mode_switch ] };
+ modifier_map Mod5 { <LVL3>, <MDSW> };
+
+ key <ALT> { [ NoSymbol, Alt_L ] };
+ modifier_map Mod1 { <ALT>, <LALT> };
+
+ key <META> { [ NoSymbol, Meta_L ] };
+ modifier_map Mod1 { <META> };
+
+ key <SUPR> { [ NoSymbol, Super_L ] };
+ modifier_map Mod4 { <SUPR> };
+
+ key <HYPR> { [ NoSymbol, Hyper_L ] };
+ modifier_map Mod4 { <HYPR> };
+
+ key <INS> { [ Insert ] };
+ key <DELE> { [ Delete ] };
+ key <END> { [ End ] };
+ key <UP> { [ Up ] };
+ key <LEFT> { [ Left ] };
+ key <DOWN> { [ Down ] };
+ key <RGHT> { [ Right ] };
+
+ // True for all layouts (except for ru).
+ key <TLDE> { [ grave, asterisk, asciitilde ] };
+
+ // SU-8W uses 140 for Home, not the normal keycode. Very useful.
+ key <HOME> { [ NoSymbol ] };
+ // Ditto LWIN/RWIN and Page Up/Page Down.
+ key <PGUP> { [ none ] };
+ key <PGDN> { [ NoSymbol ] };
+
+ // The LWIN & RWIN keys correspond to the 'select left' and
+ // 'select right' keys.
+ key <LWIN> { [ Prior ] };
+ key <RWIN> { [ Next ] };
+
+ // <FRNT> = 140 ~ <I140>
+ key <FRNT> { [ Home ] };
+ // <PROP> = 138 ~ <I138>
+ key <PROP> { [ Menu ] };
+ key <I163> { [ XF86Mail ] };
+
+ // Power button.
+ key <I5E> { [ Execute ] };
+};