Portál AbcLinuxu, 2. května 2025 12:56
V předchozích zápiscích jsem si stěžoval, že nelze na N900 používat FOUR_LEVEL typ kláves v Xorg. S upgradem toto omezení padlo, takže jsem si konečně mohl přizpůsobit klávesenici.
N900 jsem koupil ve Švýcarsku, takže HW rozložení (popisky) kláves je pro CH. Samozřejmě jsem SW rozložení (stejně jako celé prostředí) přepnul do CZ. Už svoje první PC jsem měl z Německa, takže klávesnice byla s německýma popiskama a ani tehdy mi nevadilo, že popisky nesedí se SW rozložením. Naštěstí jsem si častým používáním dokázal zapamatovat rozložení anglických kláves, takže jsem klávesy nehledal podle popisků na klávesnici. Stejně tak jsem si i na N900 za chvilku zvykl na CZ rozložení kláves a CH popisky ignoroval. Protože byl ale telefon určen pro CH trh a předpokládalo se, že uživatel bude mít SW rozložení také CH, byla tomu přizpůsobena také virtuální tabulka znaků (multi_key), která se vyvolává pomocí SYMBOL+CTRL. Když jsem ale přepnul SW klávesnici do CZ jazyka, chyběly mi tak znaky "=" a "&", které nejsou ani v multi_key tabulce. Pro administrátora jsou zrovna tyto dva znaky dost důležité, takže jsem to musel řešit. Kromě toho např. XEN konzole se ukončuje pomoci CTRL-] a tak nelze XEN konzoli z N900 použitím multi_key tabulky ukončit. Také směrové šipky pro pohyb kurzoru jsou umístěné pouze na dvou klávesách a pro pohyb nahoru/dolů se musí kombinovat SYMBOL s klávesami.
Z těchto důvodů jsem chtěl vlastní rozložení kláves, kde bych měl všechny znaky dostupné na klasické klávesnici. Samozřejmě s pomocí 38 kláves není možná vytvořit mapy pro 101-105 PC kláves, ale důležité jsou hlavně psané symboly. Pokud je k dispozici 28 kláves, tak s pomocí čtyř levelů je možné mít až 112 znaků a to už stačí na většinu všech EN znaků a čísel a základních českých písmen, další česká a cizí písmena lze pak vytvářet pomocí mrtvých kláves.
Původně jsem chtěl vytvořit dvě mapy, anglickou a českou, v různých skupinách a pak je přepínat. Nepovedlo se mi ale vytvořit přepínání pomocí CTRL-Enter, proto jsem potřeboval jednu univerzální mapu.
Protože jsem zvyklý na rozložení klasické PC klávesnice, snažil jsem se namapovat znaky co nejvíce podobně jako jsou na klasických velkých klávesnicích.
Písmena a čísla jsem nechal na svých místech.
V první řadě písmen "Q"-"P" jsem na 3.level namapoval čísla a na 4.level pak symboly, které jsou obvykle na PC klavesnicích na 2.levelu (SHIFT) na číslech.
Druhá řada "A"-"L" má ve 3.levelu česká znaky, které jsou normálně na číslech "2"-"0". V českém a anglickém rozložení jsou ve 4.levelu velká česká písmena. Protože obvykle nejsou česká velká písmena tak potřebná, v univerzálním rozložení jsem na klávesy "A", "S", "D" a "F" ve 4.levelu namapoval háček, čárku, kroužek a dvojtečku (umlaut pro německé znaky).
V první a druhé řadě je mezi klávesami "P" a Backspace a "L" a šipka nahoru po jedné klávese. Na tyto klávesy jsem namapoval znaky z PC klávesnice ležící mezi "0" a Backspace, tedy "-", "_", "=" a "+" a znaky ze dvou kláves vpravo od "L", tedy středník, dvojtečku, apostrof a uvozovky.
Na třetí řadu "Z"-"M" zbyly znaky, které se už jinam nevešly. Na 3. a 4. level písmen "B", "N" a "M" jsem namapoval znaky z PC kláves ležících mezi "M" a pravým Shiftem. Na klávesy "C" a "V" jsem namapoval hranaté a složené závorky (původně ležící na PC vpravo od "P"). Písmena "Z" a "X" pak ve 3. a 4. levelu v anglické a univerzální klávesnici vypisují zpětný apostrof, vlnku (z kláves vlevo od "1") a backslash a pipe. V českém rozložení pak jsou na klávesy "Z" a "X" mapovány mrtvé znaky pro háček, čárku, kroužek a dvojtečku (umlaut).
Dále jsem pozměnil i 3. a 4. level klávese Backspace (tam je mapován Delete), klávese Enter (je mapován Escape) a mezerníku (mapován Tabulátor).
Pro šipky je situace ještě o trošku složitější. Pro výběr textu šipkami se používá Shift, čili 2. a 4. level, které jsem tedy nemapoval. První a druhý level jsou tedy shodné s americkým rozložením. Na 3. level jsem namapoval další pohybové klávesy: nahoru má ve 3. level význam PageUp, dolů má význam PageDown, vlevo znamená Home a vpravo je End. Se Shiftem (tedy 4. level) tyto posuny kurzoru vyberou text.
Na rozložení si budu muset nějakou dobu zvyknout, dost jsem si zažil psát tečku pomocí klávesy vpravo od mezerníku, ale na té klávese je nyní pohyb vlevo. Ikdyž popisky symbolů na klávesách prakticky nesouhlasí s mapováním, lze jednoduše požadovaný symbol najít, v několika málo případech je sice oproti PC klávesnici v úplně jiné části klávesnice, ale to se dá naučit.
Pokud máte zájem, v přílohách najdete HTML soubor, pomocí kterého jsem si
rozložení plánoval. Dále PDF s obsahem toho HTML souboru, pokud by se chtěl
jen někdo rychle podívat a nechtěl by stahovat a ukládat HTML. A nakonec
příslušný soubor s mapou, který se uloží do /usr/share/X11/xkb/symbols.
Aktivovat vybranou klávesnici pak můžete pomocí příkazů setxkbmap -types
"complete+nokia" -symbols
"nokia_vndr/rx-51(common)+mykbd(encz)+inet(evdev)"
pro univerzální,
setxkbmap -types "complete+nokia" -symbols
"nokia_vndr/rx-51(common)+mykbd(en)+inet(evdev)"
pro anglickou a
setxkbmap -types "complete+nokia" -symbols
"nokia_vndr/rx-51(common)+mykbd(cz)+inet(evdev)"
pro českou. Jestli
máte odvahu, můžete si tu mapu vložit pomocí "include" do
/usr/share/X11/xkb/symbols/nokia_vndr/rx-51 do nějaké nevyužité konfigurace,
např. pro Švédsko, Norsko a podobně. Potom si zvolte v konfiguraci tuto
klávesnici a budete jí mít automaticky po startu. Pokud by tam byla ale nějaká
chyba, zřejmě (podle toho, co jsem četl) se vám telefon nenastartuje a budete
muset flashovat. Ale můžete si to nastavení nejdříve vyzkoušet, takže byste
měli mít jistotu, jestli to funguje nebo ne. Já jsem srab a proto si budu tu
klávesnici raději po startu vždy spouštět ručně, napsal jsem si skript.
Ještě jedna poznámka ke klávesnici. Jak si můžete všimnout v souboru s konfigurací, na klávesu Enter (RTRN) mapuji na KP_Enter, což by měl být Enter z numerické klávesnice. Bohužel mi z nějakého důvodu nefunguje "Return", který by měl být "normální" Enter. A to způsobuje trošku problémy ve screenu. Kód pro Return je "^M" a pro KP_Enter je "^[OM". A zřejmě v termcapu pro terminál screen není definovaná tato sekvence jako Enter, takže v less a vim se místo Enteru zobrazí ESCOM, resp. ve vimu se ukončí editační mód (díky ^[, to je kód pro Escape), začne se nová řádka (to je "O") a napíše se písmeno "M". Takže ve screenu musím používat CTRL-M místo Enteru a to je nepříjemné. Zkusím se podívat na ten termcap, pokud by to někdo věděl, ušetřil by mi spoustu času. Díky.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.