
XFree a window managery X. - vstupní zařízení
Minule jsme se zabývali výstupní částí systému X, tedy displeji. Dnes přicházejí
na řadu zařízení vstupní, jejichž prostřednictvím získává X server informace
od uživatele a předává je aplikacím.
Kategorie vstupních zařízení
Vstupní zařízení, o kterých má smysl v souvislosti s X Window Systemem hovořit,
můžeme rozdělit do těchto kategorií:
-
myši a obdobná zařízení (trackball, touchpad atd.)
-
klávesnice
-
dotykové obrazovky, projektory se zpětnou vazbou
-
ostatní (speciální) vstupní zařízení
Každá z těchto kategorií má svá specifika a charakteristické problémy, často
v souvislosti s historickým vývojem X a jeho postupným prosazováním v praxi.
Myši
Myši a podobná polohovací zařízení jsou v X poměrně bezproblémovou kategorií.
Jejich principy jsou jednoduché a obsluha X serverem je tedy již velmi dobře
zvládnuta. Současné verze XFree86 jsou schopny pracovat se všemi obvyklými
způsoby připojení myší (sériový port, sběrnice, PS/2, USB) - pozor však na to,
že na některých platformách nemusí být některé způsoby podporovány (není to
případ Linuxu, zde je podpora velmi kvalitní). Totéž se týká i koleček a
přídavných tlačítek na myších.
Pozor! U myší pro USB často nacházíme také redukci pro připojení na PS/2.
Nedoporučuji tuto redukci používat, myš se může chovat nevyzpytatelně; lepší
je - pokud to lze - připojit myš přímo na USB (není-li volný port, raději
přidat USB hub).
Konfigurace myši
Pokud máme myš připojenu již při instalaci GNU/Linuxu s XFree86, instalační
program by měl myš automaticky detekovat a my pak jen upřesníme nastavení
(např. zda u dvoutlačítkové myši použít emulaci třetího tlačítka). Podrobná
nastavení vlastností myši poskytují nástroje, které jsou součástí balíků
window managerů. Obvykle lze nastavovat citlivost, akceleraci, vlastnosti
kurzoru atd.
Ale i pokud byla myš instalována dodatečně (např. při nákupu nové myši), není
nastavení žádný problém. Programy xf86config, XF86Setup
apod. nabídnou seznam
myší, z nichž vybereme buď přímo konkrétní myš, nebo některou z generických
myší.
Pokud vše selže, nebo máme-li specifické požadavky na práci myší, zbývá možnost
ruční editace souboru XF86Config. Škála možností je zde velice rozsáhlá,
záleží na provedení konkrétní myši. Typická sekce pro nastavení parametrů myši
vypadá takto:
Section "InputDevice"
Identifier "Mouse 1"
Driver "mouse"
Option "Device" "/dev/mouse"
Option "Protocol" "Auto"
Option "Buttons" "3"
Option "ZAxisMapping" "Y"
EndSection
Příklad ukazuje sekci pro 3-tlačítkovou myš s kolečkem. Položka "Auto" u názvu
protokolu znamená, že se ho má X server pokusit detekovat. Většinou to funguje,
jinak je třeba napsat název konkrétního protokolu. Zajímavá je položka
"ZAxisMapping", která určuje způsob interpretace kolečka (v tomto případě
posun ve směru osy Y). Nutno podotknout, že pokud určujeme protokol přímo,
pro generické protokoly (PS/2, serial atd.) nebude kolečko fungovat - je třeba
určit příslušný proprietární protokol, pokud ho X server podporuje (viz
dokumentace ke konkrétní verzi XFree86). Stejným způsobem se pracuje také
s přídavnými tlačítky. Význam tlačítek myši lze za běhu X serveru měnit
programem xmodmap (bude o něm řeč v části o klávesnici).
Klávesnice
Klávesnice je zařízení na první pohled jednoduché, ale z softwarového hlediska
je naopak součástí velmi problematickou. Platí totiž, že co jazyk, to jiná
klávesnice. Navíc existují klávesnice převzaté z psacích strojů, klávesnice
programátorské atd. Jednoduše řečeno, obrovskou množinu "logických" klávesnic
musíme napasovat na množinu klávesnic fyzických. Je příjemné mít ještě možnost
mezi logickými klávesnicemi snadno přepínat. Tedy: úkol nikoli jednoduchý.
Na straně fyzického zařízení je základní entitou klávesa - ta může být
stisknutá nebo uvolněná. Nyní se ještě nijak nezabýváme tím, kolik kláves
můžeme stisknout najednou, natož aby záleželo na posloupnosti stisku kláves.
Na druhé straně, tedy v aplikačním programu, očekáváme přijetí znaku kódovaného
podle kódování použitého v tomto programu (obvykle bývá totožné s kódováním
celé platformy). Tímto kódováním bývá dnes už často Unicode, takže máme o
jednu starost méně (jinak bychom museli ještě hlídat, aby aplikace znakům
správně rozuměla - používala stejné kódování jako X server nebo aby se znaky
překódovávaly).
Pokud by stačilo jednoduše přiřazovat každé stisknuté klávese nějaký kód,
nebyl by problém toto překódovávání zajistit. Ale v praxi se musíme vyrovnat
s více překážkami:
-
závislost "logického znaku" na dalších stisknutých klávesách (typicky Shift,
Control, Alt) - jednotlivě i současně
-
závislost na režimu klávesnice (zapnutý/vypnutý Caps Lock, resp. Num Lock)
-
používání "mrtvých kláves" (klávesa resp. kombinace kláves sama o sobě nevloží
znak, pouze ovlivní další vkládaný znak)
-
klávesy určené pouze pro tvorbu kombinací (viz výše) samy znak nevkládají
-
objevuje se potřeba vložit i znaky na klávesnici neobsažené
V počátečních obdobích vývoje X Window Systemu se s řadou těchto problémů
nepočítalo - v angličtině např. nejsou zapotřebí mrtvé klávesy. Proto vznikala
různá pomocná řešení, která byla bohužel šitá na míru konkrétním jazykům
(např. češtině) a proto příliš neřešila potřeby ostatních jazyků. V dnešní
době je už situace podstatně lepší a máme proto k dispozici relativně
univerzální řešení přímo v rámci XFree86. Obsahuje řešení všech uvedených
problémů, navíc další podporu přidávají nástroje window managerů.
Konfigurace klávesnice
Opět nejjednodušší situace nastává při nastavování v rámci instalačního
procesu. Vybereme typ fyzické klávesnice (počet kláves apod.), určíme základní
logické mapování (např. česká klávesnice, česká QWERTY, česká programátorská)
a případně další logické klávesnice (typicky standardní americkou).
Integrovaná prostředí správců oken umožňují snadné přepínání klávesnic a
poskytují indikaci aktuálního mapování. Lze určit i chování LED indikátorů
na klávesnici, kontextovou závislost přepínání klávesnic a mnoho dalšího.
Při konfiguraci prostřednictvím xf86config, XF86Setup
nebo xf86cfg je to opět
snadné. Zvolíme fyzickou a logickou klávesnici z nabízených variant a
konfigurátory udělají patřičné záznamy do konfiguračního souboru.
Poslední možností je ruční úprava konfigurace. Vypadá zhruba takto:
Section "InputDevice"
Identifier "Keyboard 1"
Driver "keyboard"
Option "AutoRepeat" "500 5"
Option "XkbModel" "pc102"
Option "XkbLayout" "cz"
EndSection
Opět okomentuji uvedený příklad. Jistě si každý všiml, že je velmi podobný
tomu u konfigurace myší. Je to tak a je to velmi přínosná záležitost.
U starších verzí XFree86 se používaly jiné konfigurační direktivy, klávesnice
a myš se konfigurovaly odlišně. Nyní patří všechna vstupní zařízení do sekce
InputDevice a liší se pouze použitým ovladačem (zde "keyboard") a
nastavitelnými možnostmi. Položka AutoRepeat určuje zpoždění a kmitočet
opakování znaku, položka XkbModel nastavuje fyzický model klávesnice a
XkbLayout volí logickou klávesnici. Možných voleb je podstatně více, doporučuji
nahlédnout do dokumentace k vaší verzi XFree86.
Co má řada položek společné, je úvodní Xkb v názvu. To je charakteristické pro
(vypínatelné) rozšíření XKEYBOARD. Právě toto rozšíření je oním univerzálním
prostředkem pro řešení různých problémů ohledně klávesnic. Pokud potřebujeme
změnit mapování některé klávesy, můžeme použít program xmodmap. Poskytuje
v této oblasti řadu možností, vhodných jak pro řešení ad hoc, tak i pro
trvalou aplikaci např. do přihlašovacího skriptu. Bližší informace najdete
v manuálu k programu xmodmap.
I když budete mít klávesnici správně nastavenu, určitě se setkáte s programy,
ve kterých fungovat nebude. Proč? Příčiny mohou být (kromě případných
programátorských chyb v programech) dvě: buď program požaduje data z klávesnice
jako "surová" (nízkoúrovňová; bývá to např. u různých her), nebo pracuje
s konkrétním kódováním dat (často pouze ASCII, tedy 0-127 dekadicky).
S prvním případem nic nenaděláme (nízkoúrovňová práce s klávesnicí bývá kvůli
zvýšení rychlosti), u druhého existují různé finty, jak ten který program
přinutit spolupracovat (včetně aplikace patchů vyvinutých postiženými
nešťastníky).
Dotykové obrazovky
Tato kategorie vstupních zařízení není příliš obvyklá, přesto však na ni
můžeme narazit. Dotykové obrazovky najdeme hlavně u různých informačních
kiosků, a protože se řešení podobných jednoúčelových přístrojů na základě
GNU/Linuxu v poslední době objevuje čím dál častěji, budeme se pravděpodobně
častěji setkávat i s dotykovými obrazovkami na Xfree86. Podobná situace
se může objevit i u další podobné oblasti, a to jsou datové projektory se
zpětnou vazbou (snímáním polohy určené laserovým ukazovátkem). Naopak světelná
pera se neujala, takže je již nebudu zmiňovat (i když i ta by se dala v XFree86
zprovoznit!).
Konfigurace dotykových obrazovek
Aby dotyková obrazovka správně pracovala, musí být k dispozici příslušný
ovladač (modul). U posledních verzí XFree86 najdeme ovladače pro obrazovky
pro EloTouch, MicroTouch a MuTouch (příp. některé další, nutno ověřit pro
konkrétní verzi). Máme-li ovladač, potom musíme ručně vytvořit sekci v
konfiguračním souboru (konfigurační nástroje podporu neobsahují), např.
takto:
Section "InputDevice"
Identifier "TouchScreen"
Driver "Elographics"
Option "MinimumXPosition" "300"
Option "MaximumXPosition" "2600"
Option "MinimumYPosition" "300"
Option "MaximumYPosition" "2600"
EndSection
Význam první dvě položky je jasný, další pak specifikují hodnoty pro vztah
mezi pozicí dotykové obrazovky a stínítka obrazovky displeje. Tyto hodnoty
závisí jak na konkrétním typu obrazovky, tak na použitém rozlišení. Správné
hodnoty lze určit experimentálně nebo s použitím kalibračních nástrojů
vytvořených k tomuto účelu (např. touchcal). Nesmíme ještě zapomenout, že
ovladač pro dotykovou obrazovku musí být uveden v seznamu modulů, např.:
Section "Module"
...
Load "elographics"
...
EndSection
Aby dotyková obrazovka převzala funkci polohovacího zařízení, musí se
po startu jako polohovací zařízení nastavit: xsetpointer TouchScreen
(název zařízení musí odpovídat identifikátoru v souboru XF86Config).
Ostatní vstupní zařízení
Sem patří rozsáhlá množina jiných zařízení, která by pro použití s X připadala
v úvahu. Z nejčastějších lze jmenovat např. tablet a digitizér. Tato zařízení
se konfigurují podobně jako myši a dotykové obrazovky ("od každého něco").
Bohužel nemám zkušenosti s instalací takových zařízení do XFree86, takže
bližší informace poskytnout nemohu. Velice pravděpodobně pro některá z těchto
zařízení existují ovladače pro XFree a proto by neměl být problém je
zprovoznit.
Velké sjednocení
Sjednocení přístupu ke vstupním zařízením, ke kterému došlo v X serveru ve verzi
4, výrazně zjednodušilo konfiguraci těchto zařízení. Kdo nakonfiguruje jedno
zařízení, už by mu neměla činit problémy konfigurace něčeho jiného. Pro bližší
informace opět odkazuji na dokumentaci k XFree86 a manuálové stránky
jednotlivých programů.
Příště bude na programu zajímavá oblast systému X - multimediální funkce.
Tato oblast v poslední době získává na významu a posiluje význam X jako
(nejen) pracovního prostředí.
Další části seriálu:
|