Polski layout zewnętrznej klawiatury na n800

Jak pewnie wszyscy czytelnicy tego bloga już wiedza, zaopatrzyłem się niedawno w tablet – Nokię n800. Recenzję, lub ewentualne zestawienie ulubionego softu opracuję jak minie efekt WOW, a póki co podzielę się tylko sposobem zmontowania polskich krzaczków na zewnętrznej klawiaturze, jeśli zechcemy taką podłączyć do naszej Nokii. Pamiętajmy, że ten tablet chodzi pod linuxem, więc przygotujcie się na dłuuugi post.

Załóżmy, że etap instalacji usbcontrol i aktywacji hosta usb mamy za sobą. Podłączamy klawiaturę i widzimy standardowe komunikaty o błędach. Nie należy się przejmować, dużo krzyku o nic. Prawdziwy problem pojawia się, gdy podczas konfiguracji naszej „bluetoothowej” (tam się konfiguruje klawiaturę podłączoną do USB)  klawiatury nie znajdujemy polskiego layoutu. No cóż, linux. Trzeba sobie radzić inaczej.

Do rozwiązania tego problemu potrzebne nam będzie w zasadzie jedno narzędzie – xmodmap. Nie ma wersji na OS2008, ale ja (i z tego co wyczytałem w sieci nie tylko ja) używam z powodzeniem wersji dla OS 2007. Pobrać ją można z tego repozytorium.

Po zainstalowaniu tego pakietu, możemy przejść do towrzenia naszego configu. Niestety kod klawiszy pod Maemo jest inny niż pod PC stąd jeśli nawet macie gotowy config z ‘dużego’ linuxa, będzie trzeba trochę posiedzieć sprawdzając poszczególne kombinacje xev’em .

Poniżej moja beta-konfiguracja – zmodyfikowany layout znaleziony w sieci:

! The "AltGr" (right Alt) key generates Mode_switch
 
keycode 0x09 = Escape
 
keycode 0x43 = F1
 
keycode 0x44 = F2
 
keycode 0x45 = F3
 
keycode 0x46 = F4
 
keycode 0x47 = F5
 
keycode 0x48 = F6
 
keycode 0x49 = F7
 
keycode 0x4A = F8
 
keycode 0x4B = F9
 
keycode 0x4C = F10
 
keycode 0x5F = F11
 
keycode 0x60 = F12
 
keycode 0x6F = Print
 
keycode 0x4E = Multi_key
 
keycode 0x6E = Pause
 
keycode 0x31 = grave asciitilde
 
keycode 0x0A = 1 exclam
 
keycode 0x0B = 2 at
 
keycode 0x0C = 3 numbersign
 
keycode 0x0D = 4 dollar
 
keycode 0x0E = 5 percent
 
keycode 0x0F = 6 asciicircum
 
keycode 0x10 = 7 ampersand section
 
keycode 0x11 = 8 asterisk
 
keycode 0x12 = 9 parenleft
 
keycode 0x13 = 0 parenright
 
keycode 0x14 = minus underscore
 
keycode 0x15 = equal plus
 
keycode 0x33 = backslash bar
 
keycode 0x16 = BackSpace
 
keycode 0x6A = Insert
 
keycode 0x61 = Home
 
keycode 0x63 = Prior
 
keycode 0x4D = Num_Lock
 
keycode 0x70 = KP_Divide
 
keycode 0x3F = KP_Multiply
 
keycode 0x52 = KP_Subtract
 
keycode 0x17 = Tab
 
keycode 0x18 = Q
 
keycode 0x19 = W
 
keycode 0x1A = e E eogonek Eogonek
 
keycode 0x1B = R
 
keycode 0x1C = T
 
keycode 0x1D = Y
 
keycode 0x1E = U
 
keycode 0x1F = I
 
keycode 0x20 = o O oacute Oacute
 
keycode 0x21 = P
 
keycode 0x22 = bracketleft braceleft
 
keycode 0x23 = bracketright braceright
 
keycode 0x24 = Return
 
keycode 0x6B = Delete
 
keycode 0x67 = End
 
keycode 0x69 = Next
 
keycode 0x4F = KP_7
 
keycode 0x50 = KP_8
 
keycode 0x51 = KP_9
 
keycode 0x56 = KP_Add
 
keycode 0x42 = Caps_Lock
 
keycode 0x26 = a A aogonek Aogonek
 
keycode 0x27 = s S sacute Sacute
 
keycode 0x28 = D
 
keycode 0x29 = F
 
keycode 0x2A = G
 
keycode 0x2B = H
 
keycode 0x2C = J
 
keycode 0x2D = K
 
keycode 0x2E = l L lstroke Lstroke
 
keycode 0x2F = semicolon colon
 
keycode 0x30 = apostrophe quotedbl
 
keycode 0x53 = KP_4
 
keycode 0x54 = KP_5
 
keycode 0x55 = KP_6
 
keycode 0x32 = Shift_L
 
keycode 0x34 = z Z zabovedot Zabovedot
 
keycode 0x35 = x X zacute Zacute
 
keycode 0x36 = c C cacute Cacute
 
keycode 0x37 = V
 
keycode 0x38 = B
 
keycode 0x39 = n N nacute Nacute
 
keycode 0x3A = M
 
keycode 0x3B = comma less
 
keycode 0x3C = period greater Multi_key
 
keycode 0x3D = slash question
 
keycode 0x3E = Shift_R
 
!keycode 0x62 = Up
keycode 111 = Up
keycode 0x57 = KP_1
 
keycode 0x58 = KP_2
 
keycode 0x59 = KP_3
 
!keycode 0x6C = KP_Enter
 
keycode 36 = KP_Enter
 
keycode 0x25 = Control_L
 
keycode 0x40 = Alt_L Meta_L
 
keycode 0x41 = space
 
keycode 0x71 = Mode_switch
 
keycode 0x6D = Control_R
 
!keycode 0x64 = Left
keycode 113 = Left
!keycode 0x68 = Down
keycode 116 = Down
!keycode 0x66 = Right
keycode 114 = Right
keycode 0x5A = KP_0
 
keycode 0x5B = KP_Decimal
 
! right windows-logo key
 
! in "windows" keyboards the position of the key is annoying, is where AltGr
 
! usually resides, so go define it as AltGr
 
keycode 108 = Mode_switch
 
! right windows-menu key
 
keycode 117 = Multi_key
 
clear Shift
 
clear Lock
 
clear Control
 
clear Mod1
 
clear Mod2
 
clear Mod3
 
clear Mod4
 
clear Mod5
 
add Shift = Shift_L Shift_R
 
add Lock = Caps_Lock
 
add Control = Control_L Control_R
 
add Mod1 = Alt_L
 
!Mode_switch
 
add Mod2 = Mode_switch

Wrzucamy naszą konfigurację do pliku, i odpalamy xmodmap’a  jako root :

xmodmap [ścieżka pliku z konfigiem]

Jeśli wszystko poszło po naszej myśli, od tego momentu powinniśmy móc się cieszyć polskimi literkami, korzystając z zewnętrznej klawiatury.

Może zainteresują Cię też te wpisy: