Pages

Monday, 28 December 2009

Polski układ klawiatury dla Nokii N900

Jak podmienić plik zawierający zmodyfikowaną mapę klawiatury sprzętowej, umożliwiający wprowadzanie polskich znaków w Nokii N900 za pomocą kombinacji Fn+Ctrl->litera.


Dla wtajemniczonych

Pobrać plik rx-51 i umieścić w katalogu

/usr/share/X11/xkb/symbols/nokia_vndr

urządzenia, a następnie wydać komendę

setxkbmap pl

Rzecz jasna prawa roota są niezbędne.

Dla opornych

Założenie minimum: dostęp do terminala roota (pakiet rootsh dostępny w repozytorium Maemo Extras) oraz minimalna biegłość w poruszaniu się w linii poleceń terminala (aplikacja X-Terminal).
  1. Pobrać ten plik: rx-51 i zachować w pamięci urządzenia - załóżmy, że w katalogu /home/user/MyDocs.
  2. Odpalić X-Terminal, zalogować się do konta root za pomocą komendy: sudo gainroot
  3. Kolejno wykonywać komendy:
  4. cd /usr/share/X11/xkb/symbols/nokia_vndr
  5. cp rx-51 rx-51.orig
  6. cp -f /home/user/MyDocs/rx-51 /usr/share/X11/xkb/symbols/nokia_vndr/
  7. setxkbmap pl
I już.

Instrukcja obsługi

Moja mapa klawiatury całkowicie usuwa funkcjonalność ekranowej klawiaturki dostępnego po naciśnięciu Fn+Ctrl, za pomocą której wprowadzało się polskie znaki. W zamian, polskie literki wprowadzane są za pomocą kombinacji: Fn+Ctrl (przytrzymać) + litera. Na przykład: Fn+Ctrl->A = ą lub Shift->Fn+Ctrl->N = Ń itp.

Ponieważ klawiaturka ekranowa zawierała kilka dodatkowych, dosyć użytecznych znaków, przypisałem je do następujących kombinacji klawiszowych, czyli: Fn+Ctrl->
  • T/5 -> %
  • I/8 -> TAB
  • P -> |
  • . -> <
  • , -> >
  • F -> [
  • G -> ]
  • H -> {
  • J -> }
  • M -> ~

To tak w dużym skrócie. Zapraszam do testowania i nadsyłania komentarzy.

Update

Uaktualniony plik rx-51 nadesłany przez Grzegorza Jabłońskiego (dziękuję!), który dodaje następujące skróty klawiszowe:
  • Fn+Z -> Insert
  • Fn+X -> Escape
  • Fn+Ctrl+Q -> `
  • Fn+Ctrl+Y -> ^
  • Fn+Up -> PgUp
  • Fn+Down -> PgDown
  • Fn+Left -> Home
  • Fn+Right -> End

15 comments:

  1. Hi!

    Could you post also original file, where the polish chars
    are displayed on the virtual keyboard?

    I will be very helpful in case someone makes a mess :)

    best regards

    M.

    ReplyDelete
  2. @Maciek: you can always make a copy of original file. In fact, you *should*. :)

    ReplyDelete
  3. Hi!

    Yeah, but I have a different one, from different country.
    If I will replace with a original one, I expected a polish
    chars on the virtual keyboard, which I haven;t currently.

    best regards

    Maciek

    ReplyDelete
  4. OK, I see the point, but chars on virtual keyboard aren't dependent on the rx-51 file, but your device locale settings. Select Polish as input language and you should get Polish chars on virtual keypad.

    ReplyDelete
  5. Hi!

    Strange, I did it before, but on virtual keyboard I haven't a polish chars.
    Also I found in rx-51 file, only us and cz sections, so maybe this is a problem.

    best regards

    Maciek

    ReplyDelete
  6. I've added line to open virtual keypad with Fn+ctrl+w:
    key { symbols[Group2] = [ Multi_key, Multi_key, Multi_key, Multi_key ] };

    I haven't tested it much but I think it should work.

    ReplyDelete
  7. There's an error in my previous comment. The <AD02> part disappeared. It should look like this:

    key <AD02> { symbols[Group2] = [ Multi_key, Multi_key, Multi_key, Multi_key ] };

    ReplyDelete
  8. [...] Zobacz resztę artykułu: evad.zone ? Blog Archive ? Polski układ klawiatury dla Nokii N900 [...]

    ReplyDelete
  9. Czy da radę tak zmodyfikować ten hack, by nie trzeba było trzymać FN+CTRL, a wystarczyłoby kolejne naciskanie tych przycisków? Tzn. Najpierw FN, potem puszczamy FN, i naciskamy CTRL, puszczamy CTRL i naciskamy a = ą.

    ReplyDelete
  10. @sinsinel Niestety nie da się. Też chciałem uzyskać taki efekt, ale okazało się to niemożliwe.

    ReplyDelete
  11. A może jednak da się. Używałem xkbset z paczki debiana skompilowanej dla armel i po ustawieniu lepkości dla CTRL-a, działało to w ten właśnie sposób. Może więc i w maemo oryginalnie można tak ustawić CTRL. Wydaje mi się, że można to osiągnąć poprzez patch na źródła pakietu hildon-input-method-framework (tam jest zakodowana sticky'ość np. SHIFT-a), ale chciałbym się upewnić, że nie można tego zrobić jakoś bardziej elegancko (tzn. bez podmieniania pakietu, a przy pomocy np. dostępnego dla maemo xmodmap?). Jeśli wiesz coś co mogłoby mnie naprowadzić to napisz tu proszę.

    ReplyDelete
  12. Zauważyłem jeszcze, że przytrzymanie Shift-a i naciśnięcie klawisza wywołuje inną reakcję niż przyciśnięcie i puszczenie Shift-a i naciśnięcie klawisza. W pliku rx-51 druga pozycja odpowiada za naciśnięcie i przytrzymanie, a nie za naciśnięcie i puszczenie Shifta. To drugie zdefiniowane jest w hildon'ie (nie wiem dokładnie w którym miejscu). W związku z powyższym można zdefiniować np. klawisz AC01 tak:
    { [ a, aogonek, asterisk, Aogonek ] } co da taki efekt, że Fn+Shift+key da ą (dotychczas *), a Shift (hold)+key = Ą (dotychczas A). Jest to nieco wygodniejsze niż naciskanie Fn i Ctrl jednocześnie, ale wykorzystanie Shift-a do tego wydaje mi się nieeleganckie i wolałbym kombinację Fn+Ctrl+key, brakuje mi tylko nieco wiedzy, jako to ładnie poustawiać.

    ReplyDelete
  13. Dzięki za interesujące odkrycia i wskazówki. Ja zarzuciłem temat i póki co przyzwyczaiłem się do "starej" kombinacji. Gdyby udało się Tobie jednak rozgryźć temat, to daj cynk na maila. Pozdrawiam!

    ReplyDelete
  14. A gdyby tak odpuścić temat Ctrl i spróbować zrobić kombinację Fn->strzałka->litera (np. klawisz "strzałka do góry" byłby tym modyfikatorem poziomu)? Hmm..

    ReplyDelete
  15. Kombinacji z FN+strzałka użył jakiś user do zdefiniowania hebrajskiego układu (ma wiki maemo). Oczywiście działa to podobnie jak fn+ctrl, lub też zmieniłoby poziom znaków na "polskie", aż do ponownego użycia kombinacji, tzn, po FN+UP (przytrzymać UP, puścić FN) - naciśnięcie "a" da "ą", ale teraz puszczenie wszystkiego i następnie naciśnięcie np. "e", zamiast "e" daje "ę". Po małych przeróbkach działało by to normalnie, ale użycie strzałki, choć wygodne, jest jeszcze mniej eleganckie niż użycie SHIFT-a. Spróbuję coś konkretnego wykombinować w okresie tuż po świętach i dam znać.

    ReplyDelete