Nokia N810 Internet Tablet

Nasze przygody z N810

września-22-2008

Niemiecka klawiatura i polskie litery

Michaniu i ja mamy przez przypadek/niedopatrzenie/niewiedzę niemiecki układ klawiatury w naszych N810. Niby nic strasznego – można się przyzwyczaić do zmienionych “Y” i “Z”, ale problem zaczyna się gdy zechcemy wprowadzać polskie znaki diakrytyczne. Można co prawda zainstalować polski układ klawiatury przygotowany przez Marcina Juszkiewicza, ale niestety nie jest on dostosowany do klawiatury niemieckiej i przypisuje inne znaki niż są namalowane na klawiszach.

Niemiecki układ klawiatury N810

Żeby pomóc sobie, a przy okazji może jeszcze komuś, przygotowałem własny układ klawiatury oparty na układzie niemieckim. Do zainstalownia mojego układu niezbędny jest program ukeyboard. Niestety nie udało mi sie jeszcze skontaktować z autorem, więc na razie najpierw trzeba ręcznie zmodyfikować pewien plik, by móc cieszyć się polskimi znaczkami. Może w następnych edycjach programu nie trzeba będzie dodatkowo kombinować. Ale po kolei…

Po pierwsze należy zainstalować Additonal keyboard layouts czyli “ukeyboard”. Po drugie należy zmienić plik /usr/share/X11/xkb/symbols/nokia_vndr/ukeyboard. Otóż należy do niego dodać:

// author: Pawel Dys
partial alphanumeric_keys
xkb_symbols "pl-qwertz-de" {
  name[Group1] = "Polish QWERTZ (DE hw)";

  include "nokia_vndr/rx-44(de)"
  include "nokia_vndr/ukeyboard(base)"

  key   { [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift ] };
  modifier_map Mod3 { ISO_Level5_Shift };

  //                                  normal      Shift       Fn              Fn+Shift        Chr              S+Chr            Fn+Chr          Fn+Shift+Chr
  key   { type="EIGHT_LEVEL", [ space,      space,      Tab,            Tab,            bar,             bar,             space,          space           ] };

  key   { type="EIGHT_LEVEL", [ e,          E,          3,              3,              eogonek,         Eogonek,         3,              3               ] };
  key   { type="EIGHT_LEVEL", [ z,          Z,          6,              6,              zabovedot,       Zabovedot,       6,              6               ] };
  key   { type="EIGHT_LEVEL", [ o,          O,          9,              9,              oacute,          Oacute,          9,              9               ] };

  key   { type="EIGHT_LEVEL", [ a,          A,          exclam,         exclam,         aogonek,         Aogonek,         exclam,         exclam          ] };
  key   { type="EIGHT_LEVEL", [ s,          S,          quotedbl,       quotedbl,       sacute,          Sacute,          quotedbl,       quotedbl        ] };
  key   { type="EIGHT_LEVEL", [ g,          G,          percent,        percent,        dollar,          dollar,          percent,        percent         ] };
  key   { type="EIGHT_LEVEL", [ h,          H,          backslash,      backslash,      bracketleft,     bracketleft,     backslash,      backslash       ] };
  key   { type="EIGHT_LEVEL", [ j,          J,          slash,          slash,          bracketright,    bracketright,    bracketright,   bracketright    ] };
  key   { type="EIGHT_LEVEL", [ l,          L,          parenright,     parenright,     lstroke,         Lstroke,         parenright,     parenright      ] };

  key   { type="EIGHT_LEVEL", [ y,          Y,          EuroSign,       EuroSign,       zabovedot,       Zabovedot,       EuroSign,       EuroSign        ] };
  key   { type="EIGHT_LEVEL", [ x,          X,          asciitilde,     asciitilde,     zacute,          Zacute,          asciitilde,     asciitilde      ] };

  key   { type="EIGHT_LEVEL", [ c,          C,          asterisk,       asterisk,       cacute,          Cacute,          asterisk,       asterisk        ] };
  key   { type="EIGHT_LEVEL", [ n,          N,          less,           less,           nacute,          Nacute,          less,           less            ] };
  key   { type="EIGHT_LEVEL", [ m,          M,          greater,        greater,        dead_circumflex, dead_circumflex, greater,        greater         ] };
  key   { type="EIGHT_LEVEL", [ comma,      semicolon,  comma,          semicolon,      braceleft,       braceleft,       comma,          semicolon       ] };
  key   { type="EIGHT_LEVEL", [ period,     colon,      period,         colon,          braceright,      braceright,      period,         colon           ] };

  key   { type="EIGHT_LEVEL", [ adiaeresis, Adiaeresis, apostrophe,     apostrophe,     quoteleft,       quoteleft,       adiaeresis,     Adiaeresis        ] };
};

// author: Pawel Dys
partial alphanumeric_keys
xkb_symbols "pl-qwerty-de" {
  name[Group1] = "Polish QWERTY (DE hw)";

  include "nokia_vndr/rx-44(de)"
  include "nokia_vndr/ukeyboard(base)"

  key   { [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift ] };
  modifier_map Mod3 { ISO_Level5_Shift };

  //                                  normal      Shift       Fn              Fn+Shift        Chr              S+Chr            Fn+Chr          Fn+Shift+Chr
  key   { type="EIGHT_LEVEL", [ space,      space,      Tab,            Tab,            bar,             bar,             space,          space           ] };

  key   { type="EIGHT_LEVEL", [ e,          E,          3,              3,              eogonek,         Eogonek,         3,              3               ] };
  key   { type="EIGHT_LEVEL", [ y,          Y,          6,              6,              zabovedot,       Zabovedot,       6,              6               ] };
  key   { type="EIGHT_LEVEL", [ o,          O,          9,              9,              oacute,          Oacute,          9,              9               ] };

  key   { type="EIGHT_LEVEL", [ a,          A,          exclam,         exclam,         aogonek,         Aogonek,         exclam,         exclam          ] };
  key   { type="EIGHT_LEVEL", [ s,          S,          quotedbl,       quotedbl,       sacute,          Sacute,          quotedbl,       quotedbl        ] };
  key   { type="EIGHT_LEVEL", [ g,          G,          percent,        percent,        dollar,          dollar,          percent,        percent         ] };
  key   { type="EIGHT_LEVEL", [ h,          H,          backslash,      backslash,      bracketleft,     bracketleft,     backslash,      backslash       ] };
  key   { type="EIGHT_LEVEL", [ j,          J,          slash,          slash,          bracketright,    bracketright,    bracketright,   bracketright    ] };
  key   { type="EIGHT_LEVEL", [ l,          L,          parenright,     parenright,     lstroke,         Lstroke,         parenright,     parenright      ] };

  key   { type="EIGHT_LEVEL", [ z,          Z,          EuroSign,       EuroSign,       zabovedot,       Zabovedot,       EuroSign,       EuroSign        ] };
  key   { type="EIGHT_LEVEL", [ x,          X,          asciitilde,     asciitilde,     zacute,          Zacute,          asciitilde,     asciitilde      ] };
  key   { type="EIGHT_LEVEL", [ c,          C,          asterisk,       asterisk,       cacute,          Cacute,          asterisk,       asterisk        ] };
  key   { type="EIGHT_LEVEL", [ n,          N,          less,           less,           nacute,          Nacute,          less,           less            ] };
  key   { type="EIGHT_LEVEL", [ m,          M,          greater,        greater,        dead_circumflex, dead_circumflex, greater,        greater         ] };
  key   { type="EIGHT_LEVEL", [ comma,      semicolon,  comma,          semicolon,      braceleft,       braceleft,       comma,          semicolon       ] };
  key   { type="EIGHT_LEVEL", [ period,     colon,      period,         colon,          braceright,      braceright,      period,         colon           ] };

  key   { type="EIGHT_LEVEL", [ adiaeresis, Adiaeresis, apostrophe,     apostrophe,     quoteleft,       quoteleft,       adiaeresis,     Adiaeresis        ] };
};

Ten krok dla bardziej zaawansowanych będzie banalny vi czy nano, wklej i zapisz. Dla mniej zaawansowanych polecam ściągnięcie pliku na N-kę, zapisanie na “dysku” i wykonanie polecenia, które dokleja treść ściągniętego pliku do docelowego:

cat nazwa-pliku.txt >> /usr/share/X11/xkb/symbols/nokia_vndr/ukeyboard

Ostatecznie powinniście dostać zawartość pliku /usr/share/X11/xkb/symbols/nokia_vndr/ukeyboard podobną do tej.

Na koniec należy wejść do Control panelu w N-ce, wybrać pozycję Text input settings i dokonać wyboru klawiatury:

Należy wybrać “Polish QWERTZ (DE hw)” lub “Polish QWERTY (DE hw)”, która różni się przestawieniem klawiszy “Z” i “Y” (niezgodnie z nadrukiem na klawiaturze).

Od tej pory polskie litery są dostępne jako kombinacja klawisza “Chr” + “acelnosxz” w celu uzyskania małych liter oraz “Chr” + “Shift” + “acelnosxz” w celu uzyskania wielkich liter. Ponieważ nowy układ klawiatury zmienia działanie klawisza “Chr” – nie pokazuje się już mini-klawiatura ekranowa ze specjalnymi znakami, pozwoliłem sobie zrobić dodatkowe kombinacje klawiszy z przydatnymi znakami:

Chr + % -> $
Chr + h -> [
Chr + j -> ]
Chr + , -> {
Chr + . -> }
Fn + Spacja -> Tab
Chr + Spacja -> |
Chr + A-umlaut -> `
Chr + M -> ^

Ponieważ z czasem może pojawić się aktualizacja pakietu “ukeyboard”, w której nie będzie moich definicji klawiatur, należy zachować czujność. Przy aktualizacji zostanie nadpisana treść pliku /usr/share/X11/xkb/symbols/nokia_vndr/ukeyboard, a więc wyżej wymienione zmiany trzeba będzie wprowadzić ponownie. Ja ze swojej strony postaram się, by nowe układy klawiatury sprzętowej pojawiły się w kolejnych wydaniach “ukeyboard”. Na razie zapraszam do testowania.

Umieszczone w kategorii N810 How To

dodajdo.com
Niemiecka klawiatura i polskie literyniemiecka klawiatura polska klawiatura polskie znaki qwerty qwertz
  1. ventyl Said,

    Nice work, ale ja bym się nie przyzwyczaił do qwertz – wolałbym nalepkę na klawiaturze :)

  2. pdd Said,

    A ja się tak przyzwyczaiłem, że nie moge się odzwyczaić!!! Specjalnie po to zrobiłem dodatkowy układ QWERTY, ale tak się myliłem przy Z i Y, że wróciłem do QWERTZ :D Zaznaczam, że robię to odruchowo, bo często nie patrzę na klawiaturę gdy piszę. Może mi się jakieś klepki poprzestawiały? ;)

  3. pdd Said,

    Aaaa, zapomniałem w poście dopisać, że klawisze “Chr”+”Z” i “Chr”+”Y” działają tak samo niezależnie od układu QWERTY/QWERTZ. To dla takich pomyleńców jak ja ;)

  4. Marcin Juszkiewicz Said,

    Rozmawiałem z autorem ukeyboard w trakcie Maemo summit. W sobotę dostał od kogoś keymapę polską dla QWERTZ i będzie ona włączona do programu.

    A jeśli chodzi o dodatkowe klawisze to warto by siąść kiedyś nad tym i ustandaryzować. Fn/Chr+Space mam akurat odwrotnie niż u Was ;)

  5. pdd Said,

    @Marcin J.
    To ja wysłałem tą keymapę. No chyba, że dostał jeszcze inną.

    A co do Fn/Chr + Space, to wiem, że u Ciebie jest inaczej, ale zmieniłem to specjalnie, bo łatwiej IHMO zapamiętać, że “Chr” + cośtam daje drukowalny znak. Poza tym częściej uzywam Tab niż “|” i wolę mniej wyginać palce w celu jego uzyskania. ;)

    Swoją drogą trzeba się nieźle nagimnastykować żeby uzyskać “ć”, nie mówiąc już o “Ć”.

  6. Marcin Juszkiewicz Said,

    @pdd: no cóż – Nokia dała ciała robiąc klawiaturę z dwoma lewymi shiftami. Gdyby było inaczej wykorzystałbym któryś Shift jako AltGr.

  7. pdd Said,

    Problem z Shiftem byłby taki, że do uzyskania wielkiej litery trzeba by nacisnąć oboma kciukami dwa klawisze Shift i chyba nosem (!) dodatkowo literę. No chyba, że ktoś potrafi trzymać N-kę i pisać więcej niż dwoma palcami (kciukami).

    Dlatego wydaje mi się, że działanie “Chr” w sąsiedztwie Shifta jest optymalne. No chyba, że ten prawy Shift zamieniony w AltGr działałby podobnie jak Shift w Nokii. Tzn. uzyskanie polskiej litery nie wymagałoby naciśnięcia jednocześnie dwóch klawiszy, ale można by najpierw nacisnąć AltGr a następnie po jego zwolnieniu literę łacińską. Mam nadzieję, że wyraziłem się jasno ;)

  8. pdd Said,

    Chyba sam się złapałem we własne sidła :/

    Bo jeśli Shift by działał jak działa (taki jednorazowy CapsLock), to uzyskanie wielkiej polskiej litery za pomocą AltGr byłoby proste (bez przyciskania nosem): Shift, a następnie AltGr+litera.

    No ale, jak na razie, to czcze gdybanie…

  9. pdd Said,

    W nawiązaniu do moich wcześniejszych, nie do końca przemyślanych komentarzy, nie przyzwyczajony do CapsLockowatego zachowania Shifta, przetestowałem jak działa Shift (naciśnięty i puszczony) z kombinacją “Chr”+litera.

    Otóż, działa jak powinien. To znaczy, gdy naciśniemy Shift, puścimy go, a następnie wciśniemy “Chr”+litera, to otrzymamy piękną WIELKĄ polską literę. Nie trzeba wciskać jednocześnie trzech klawiszy!

  10. Nasza klawiatura w ukeyboard N810 How To Nokia N810 Internet Tablet Said,

    [...] się nowa wersja (1.7) tego programu, która zawiera polską klawiaturę QWERTZ i QWERTY dla niemieckiego układu klawiatury sprzętowej w [...]

Dodaj komentarz

Musisz być zalogowany aby dodać komentarz