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. Conny

    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 ] };
    };

    Reply
  2. Webbie

    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 ] };
    };

    Reply
  3. crown77

    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

    Reply
  4. Ismael

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

    Reply
  5. Pingback: Tweets that mention The world won’t listen » Remapping the N900 arrow keys -- Topsy.com

  6. speednut

    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.

    Reply
  7. Pingback: Pinguins Móveis » Blog Archive » Pinguins soltos

  8. speednut

    @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?

    Reply
  9. Pingback: mikko’s log » Blog Archive » N900 Scandinavic Letters from US keyboard

  10. speednut

    @berto: I pulled my head out of my bumm and it works as you’ve stated. Thanks for being patient with me. 🙂

    Reply
  11. Pingback: smoku: Jak przemapować klawisze w #N900 - blogs.igalia.com/ otagowany n900 | flaker.pl

  12. Pingback: Using the Shavian alphabet on the N900 « ᛏᚦ

  13. Pingback: Using the Shavian alphabet on the N900 | Maemo Nokia N900

  14. Johannes

    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 🙂

    Reply
  15. Pingback: Mapeando acentos e cedilha no Nokia N900 com teclado US | rodrigostoledo.com

  16. Gutscheine

    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.

    Reply
  17. Janislav

    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!

    Reply
  18. Marinimini

    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?

    Reply
  19. Patrick

    Very good article. But this did not work on german devices. If someone knows how to do this, it would be nice if he could post a short hint.

    Reply

Leave a Reply

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