Remapping the N900 arrow keys

Here’s a tip for those of you using an N900 with an English keyboard.

For those who don’t know it, this is how arrow keys are arranged in (some) non-English layouts:

N900 keyboard

Compare to the English layout:

N900 keyboard

My N900 has an English keyboard, and I like it because I use the X terminal a lot so having separate keys for the arrows is good.

However I miss the accents (in particular ‘ and ~) as I usually write in Portuguese and Spanish, and using the additional on-screen keyboard is not that convenient for a Jabber conversation.

Fortunately, arrow keys can be re-mapped to add extra symbols by editing this file:

/usr/share/X11/xkb/symbols/nokia_vndr/rx-51

Just go to the end of the file and replace the ‘arrows_4btns‘ entry with this:


xkb_symbols "arrows_4btns" {
key <UP> { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Up, dead_circumflex ] };
key <LEFT> { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Left, dead_acute ] };
key <DOWN> { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Down, dead_tilde ] };
key <RGHT> { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Right, dead_grave ] };
};

With this, Fn+Up/Down/Left/Right will produce a dead circumflex/tilde/acute accent/grave accent.

If you want these changes to take effect immediately just type ‘setxkbmap us‘.

Hope you find it useful.

Update 19 Dec 2009. Since some people have asked: of course even if you only write in English or another language that doesn’t need accents, you can still add useful symbols to the arrow keys such as ‘|‘, ‘<‘ or ‘>‘. You can use any of these keyboard layouts as an example. See also this thread and this other one.

Update 10 Jan 2010. The information on this post is now (in expanded form) in the Maemo wiki.

35 thoughts on “Remapping the N900 arrow keys”

  1. Very nice tip 🙂

    Here are some for German Umlauts:
    xkb_symbols “arrows_4btns” {
    // standard arrows mapping
    // normal 2nd level must not be enumerated to allow text selection with Shift key
    key { type[Group1] = “PC_FN_LEVEL2”, symbols[Group1] = [ Up, udiaeresis ] };
    key { type[Group1] = “PC_FN_LEVEL2”, symbols[Group1] = [ Left, odiaeresis ] };
    key { type[Group1] = “PC_FN_LEVEL2”, symbols[Group1] = [ Down, adiaeresis ] };
    key { type[Group1] = “PC_FN_LEVEL2”, symbols[Group1] = [ Right, ssharp ] };
    };

  2. I would like to recommend the following, which maps Home/End/Page Up/Page Down to their logical movement counterparts:

    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 { type[Group1] = “PC_FN_LEVEL2”, symbols[Group1] = [ Up, Page_Up ] };
    key { type[Group1] = “PC_FN_LEVEL2”, symbols[Group1] = [ Left, Home ] };
    key { type[Group1] = “PC_FN_LEVEL2”, symbols[Group1] = [ Down, Page_Down ] };
    key { type[Group1] = “PC_FN_LEVEL2”, symbols[Group1] = [ Right, End ] };
    };

  3. Hi again sorry i was a little too far, could somebody give a hint how to activate the arrow keys in the german n900 device version so the up and down working without fn like in the usa and uk version? i would need this to play with the emus.

    thx again crown77

  4. In the spanish version of n900 you can change the layout ot the keyboard to english in settings, text input, desing of phisical keyboard

  5. Does anybody know the key name to find the next or previous white space? I’d like to map ctrl + (left | right) to be the next word or previous work, like keys “W” and “B” do while in vi command mode.

  6. @berto: On my US spec N900 with a doc loaded in Notes, the Ctrl+Left/Right does the same thing as Left/Right. Using the Ctrl key makes no difference.

    Can you share the default setting on yours?

  7. Thanks for the tip, this makes the N900 a lot more usable to me. Now there’s also a kind of firefox which runs on the N900, so I don’t think I need my iPhone anymore 🙂

  8. Hi again sorry i was a little too far, could somebody give a hint how to activate the arrow keys in the german n900 device version so the up and down working without fn like in the usa and uk version? i would need this to play with the emus.

  9. Thanks for that noce review that really helped me making an decision what to buy. It is great to have volunteers like you that that offer this service for free and post their results into the internet. thnaks a lot and go on!

  10. hello, i got an englisch keyboard, and i want to put up the umlauts on the arrow keys.

    but when type “/usr/share/X11/xkb/symbols/nokia_vndr/rx-51” in the x-terminal, it says “/usr/share/X11/xkb/symbols/nokia_vndr/rx-51: Permission denied”

    WHY?

Leave a Reply

Your email address will not be published. Required fields are marked *