@announce: http://rzr.online.fr/q/xkb : #nokia #n810 #keyboard #keymap for !gnu / !linux / !maemo #diablo / !x11 / #xkb : feedback on #patch welcome :)
I fixed nokia's maemo n810 keyboard, I plan to merge my patch to upstream (xkbdata) or at least try to improve it with your feedback
just copy later source to : /usr/share/X11/xkb/symbols/nokia_vndr/rx-44 (or .mine and use ln)
@feedback:
I also noted that modest work weirdly using delete / backspace, is this related ?
Regards
kimju's project did the job :
But It failed to install on latest FirmWare :
Get:1 http://repo.pub.meego.com ./ xkb-data-addons-rm680 1.7-2 [13.3kB] Fetched 13.3kB in 1s (10.2kB/s) Selecting previously deselected package xkb-data-addons-rm680. (Reading database ... 46130 files and directories currently installed.) Unpacking xkb-data-addons-rm680 (from .../xkb-data-addons-rm680_1.7-2_all.deb) ... dpkg-divert: Installation error, diversions are not allowed. dpkg: error processing /var/cache/apt/archives/xkb-data-addons-rm680_1.7-2_all.deb (--unpack): subprocess new pre-installation script returned error exit status 2 Errors were encountered while processing: /var/cache/apt/archives/xkb-data-addons-rm680_1.7-2_all.deb aegis-NOT-installing xkb-data-addons-rm680 (from '') Updating desktop entries... Done E: Sub-process /usr/bin/dpkg returned an error code (1)
I planed to fix and provide an optimized keymap for n950
apt-get install xkb-data-addons-rm680 diff -u /usr/share/X11/xkb/symbols/nokia_vndr/rm-680 /usr/share/X11/xkb/symbols/nokia_vndr/rm-680.harmattan
ToDo :
# | : Fn+yen
# TAB : Fn+SPACE, Ctrl+i
# [ : Shift+-
# ] : Shift++
# { : Fn+<
# } : Fn+>
ToDo:
## todo: backquote alt # pgup pgdw home end : Fn+joy # lbrak : lt ; eur # rbrak : gt ; ukp # quote : eur , s
# f='/usr/share/X11/xkb/symbols/nokia_vndr/rx-44' # install "$f.mine" # this source # mv "$f" "$f.orig" # keep original source # ln -sf "$f.mine" "$f" # use mine
// file:///usr/share/X11/xkb/symbols/nokia_vndr/rx-44
// URL: http://rzr.online.fr/q/xkb
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, bar, question, question ] };
key <AB01> { [ z, Z, bar, 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, bracketleft, underscore, underscore ]};
key <AE12> { [ plus, bracketright, equal, equal ] };
key <AB08> { [ comma, less, braceleft, less ]};
key <AB09> { [ period, greater, braceright, 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, bracketleft, 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, Delete, Escape, BackSpace ]};
// broken UI spec.
key <RTRN> { [ KP_Enter, Tab, 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, Tab, Tab ] };
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 ] };
};
./symbols/nokia_vndr/rx-44
http://talk.maemo.org/showthread.php?t=43280&highlight=rx-44&page=2
https://launchpad.net/ubuntu/+ppas?name_filter=xkb-data
LABELS='[F1,F2,F3,F4,PgDn]' KEYS='[F1,F2,F3,F4,Page_Up,Page_Down]' gconftool -s /apps/osso/xterm/key_labels --type list --list-type string "$LABELS" gconftool -s /apps/osso/xterm/keys --type list --list-type string "$KEYS"