xkbdata: Add Nokia n810 vendor specific keyboard mappings

git-svn-id: svn://svn.openwrt.org/openwrt/packages@25201 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
mb 2011-01-28 15:19:19 +00:00
parent 5139b0929e
commit 24633d0fd3
3 changed files with 798 additions and 1 deletions

View File

@ -30,7 +30,7 @@ define Package/xkbdata
endef
define Package/xkbdata/install
$(INSTALL_DIR) $(1)/usr/share/X11/xkb/{rules,types,keycodes,geometry,compat}
$(INSTALL_DIR) $(1)/usr/share/X11/xkb/{rules,types,keycodes,geometry,compat,symbols}
$(INSTALL_DATA) \
$(PKG_INSTALL_DIR)/usr/share/X11/xkb/rules/xorg \
$(1)/usr/share/X11/xkb/rules/base
@ -53,6 +53,12 @@ define Package/xkbdata/install
$(INSTALL_DATA) \
$(PKG_INSTALL_DIR)/usr/share/X11/xkb/compat/* \
$(1)/usr/share/X11/xkb/compat/
$(if $(filter y,$(CONFIG_TARGET_omap24xx_n810-gui)), \
$(INSTALL_DIR) $(1)/usr/share/X11/xkb/symbols/nokia_vndr; \
$(INSTALL_DATA) ./files/nokia_n810/rx-44 $(1)/usr/share/X11/xkb/symbols/nokia_vndr/; \
$(INSTALL_DATA) ./files/nokia_n810/su-8w $(1)/usr/share/X11/xkb/symbols/nokia_vndr/; \
)
endef
$(eval $(call BuildPackage,xkbdata))

View File

@ -0,0 +1,309 @@
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", [ Cyrillic_zhe, Cyrillic_ZHE, semicolon, semicolon, Cyrillic_zhe, Cyrillic_ZHE, semicolon, semicolon ] };
key <AC11> { type="EIGHT_LEVEL", [ Cyrillic_zhe, Cyrillic_ZHE, 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", [ Cyrillic_be, Cyrillic_BE, minus, minus, Cyrillic_be, Cyrillic_BE, minus, minus ] };
key <AC10> { type="EIGHT_LEVEL", [ Cyrillic_be, Cyrillic_BE, minus, minus, Cyrillic_be, Cyrillic_BE, minus, minus ] };
key <AE11> { type="EIGHT_LEVEL", [ Cyrillic_yu, Cyrillic_YU, question, question, Cyrillic_yu, Cyrillic_YU, question, question ] };
key <AE11> { type="EIGHT_LEVEL", [ Cyrillic_yu, Cyrillic_YU, question, question, Cyrillic_yu, Cyrillic_YU, question, question ] };
key <AE12> { type="EIGHT_LEVEL", [ Cyrillic_ha, Cyrillic_HA, Cyrillic_hardsign, Cyrillic_HARDSIGN, Cyrillic_ha, Cyrillic_HA, Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
key <AE12> { type="EIGHT_LEVEL", [ Cyrillic_ha, Cyrillic_HA, 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 <AB08> { type="EIGHT_LEVEL", [ period, comma, period, comma, period, comma, period, comma ] };
key <AB09> { type="EIGHT_LEVEL", [ Cyrillic_e, Cyrillic_E, Cyrillic_io, Cyrillic_IO, Cyrillic_e, Cyrillic_E, Cyrillic_io, Cyrillic_IO ] };
key <AB09> { type="EIGHT_LEVEL", [ Cyrillic_e, Cyrillic_E, 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 ] };
};

View File

@ -0,0 +1,482 @@
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 ] };
key <I140> { [ Home ] };
key <I138> { [ Menu ] };
key <I163> { [ XF86Mail ] };
// Power button.
key <I5E> { [ Execute ] };
};