Portál AbcLinuxu, 4. května 2025 19:24
Xorg server od verze 1.5 přináší dynamickou podporu pro vstupní zařízení (klávesnice, myš atp.), o které se stará - již výhradně - HAL. V dokumentaci k HAL se lze dočíst spoustu zajímavých věcí jak HAL funguje a jak jej konfigurovat, bohužel funkční volby pro nastavení klávesnice pro Xorg server > 1.5 tam nenajdete. Teprve až když jsem věděl co hledat, mi google našel ukázkový konfigurační soubor, ve kterém je to pěkně polopaticky vyloženo a především zdůrazněno, že volby:
input.xkb.rules input.xkb.model input.xkb.layout input.xkb.variant input.xkb.options
..které jsou v dokumentaci k HAL uvedeny, se NEMAJÍ používat. Místo nich je třeba použít jmenný prostor x11_options
a volby příslušné pro použitý ovladač.
Výchozím ovladačem pro vstupní zařízení je evdev
. Prostřednictvím konfiguračního souboru pro HAL lze místo něj nastavit jiný (ale u klávesnice to moc nedoporučuji). Konfigurační soubor pro HAL, je XML dokument, který je třeba umístit do adresáře /etc/hal/fdi/policy
(Debian unstable)
Strukturu elementů ukázkového konfiguračního souboru můžete vidět níže . Element match
je kontejner, který může obsahovat mimo vlastní nastavení elementem merge
další upřesňující kontejnery match
.
deviceinfo | \-device | |-match key="info.capabilities" contains="input.mouse" | | | |- merge key="input.x11_driver" type="string" | | | \- match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux" | | | \- merge key="input.x11_driver" type="string" | \- match key="info.capabilities" contains="input.keys" | |- merge key="input.x11_driver" type="string" | |- merge key="input.x11_options.XkbRules" type="string" | |- match key="/org/freedesktop/Hal/devices/computer:system.kernel.name" string="Linux" | | | |- merge key="input.x11_driver" type="string" | | | \- merge key="input.x11_options.XkbModel" type="string" | |- merge key="input.x11_options.XkbLayout" type="string" | \- merge key="input.x11_options.XkbVariant"
V uvedeném příkladu nastaveny dva kontejnery pro vstupní zařízení. Jeden pro zařízení identifikovaná řetězcem 'input.mouse' a druhý pro 'input.keys'. Každý z nich má dále subkontejner, který ovladač přenastaví v případě že obsah klíče "/org/freedesktop/Hal/devices/computer:system.kernel.name" (klíč system.kernel.name v objektu s udi /org/freedesktop/Hal/devices/computer) odpovídá řetězci 'Linux'. Mapa kláves zůstává stejná bez ohledu na použitý ovladač, proto jsou volby pro její nastavení součástí nadřazeného kontejneru.
V případě Xorg serveru 1.5 mi tedy stačilo vytvořit soubor s následujícím obsahem
<?xml version="1.0" encoding="UTF-8"?> <deviceinfo version="0.2"> <device> <match key="info.capabilities" contains="input.keys"> <merge key="input.x11_options.XkbLayout" type="string">cz,us</merge> <merge key="input.x11_options.XkbVariant" type="string">qwerty,</merge> </match> </device> </deviceinfo>
Poté co jsem vyřešil problém s klávesnicí v X prostředí, jsem se ještě chvíli trápil s klávesnicí v prostředí virtuálních strojů VMware Workstation, ale o tom v jiném FAQ.
O trápení a zkušenostech jiných uživatelů s HAL si na tomto serveru můžete přečíst v diskuzích k následujícím blogpostům.
Dokument vytvořil: Aleš Kapica, 25.11.2008 15:27 | Poslední úprava: Aleš Kapica, 27.11.2008 16:33 | Historie změn | Zobrazeno: 1751×
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.