Multimédia billentyűzetek beállítása Linux alatt

A legtöbb manapság kapható billentyűzeten van néhány különleges gomb például böngésző indítására, vagy email írására, stb. Ezek kódja már-már szabványos, de lehet, hogy nem minden gombot tudunk használni. Ekkor kell egy új billentyűzetmodellt készíteni. Ennek leírása következik.

Az én billentyűzetemet a német ,,hama'' cég gyártotta. Az xev programmal lehet megnézni, hogy az egyes gombokhoz milyen kód tartozik. Ha lenyomom a Web Favorites gombot az xev kimenetén a következő jelenik meg:

KeyRelease event, serial 30, synthetic NO, window 0x1800001,

root 0x8e, subw 0x0, time 18393136, (173,-8), root:(175,837),

state 0x10, keycode 230 (keysym 0x0, NoSymbol), same_screen YES,

XLookupString gives 0 bytes:

A 230-as kódot a /etc/X11/xkb/keycodes/xfree86 fájlban kell megkeresni (<I66>) majd ezt beírni a /etc/X11/xkb/symbols/inet fájlba:

partial alphanumeric_keys

xkb_symbols "hama" {

name[Group1]= "Hama";

key { [ XF86Back ] };

key { [ XF86Forward ] };

key { [ XF86Favorites ] };

key { [ XF86HomePage ] };

key { [ XF86Mail ] };

key { [ XF86Launch0 ] };

key { [ XF86AudioRaiseVolume ] };

key { [ XF86AudioLowerVolume ] };

key { [ XF86AudioMute ] };

key { [ XF86AudioPrev ] };

key { [ XF86AudioStop ] };

key { [ XF86AudioPlay, XF86AudioPause ] };

key { [ XF86AudioNext ] };

key { [ XF86WakeUp ] };

// key { [ XF86Sleep ] };

key { [ XF86PowerOff ] };

};

A Sleep gombhoz tartozó kódot nem találtam meg :(

Majd a billentyűzetünk nevét -- jelen esetben: ,,hama'' -- hozzáadni a /etc/X11/xkb/rules/xorg fájlhoz:

! \$inetkbds = hama a4techKB21 airkey acpi scorpius azonaRF2300 \

és a /etc/X11/xkb/rules/xorg.xml fájlhoz:

hama

<_description>Hama

Valamint a /etc/X11/xkb/rules/xorg.lst listához kell még hozzáadnunk:

hama Hama

Ha ezekkel megvagyunk, a setxkbmap programmal ki is próbálhatjuk (setxkbmap hu,us -variant winkeys -model hama), majd az xev programmal megnézhetjük, hogy az adott billentyű lenyomásával a megfelelő szimbólumot generálja az X11.

Ha ez is jól működik, érdemes véglegesíteni a beállításokat az /etc/X11/xorg.conf vagy /etc/X11/XF86Config-4 fájlban:

Section "InputDevice"

Identifier "Keyboard1"

Driver "Keyboard"

Option "XkbRules" "xfree86"

Option "XkbModel" "hama"

Option "XkbVariant" "winkeys"

Option "XkbLayout" "us,hu,de"

Option "XkbOptions" "grp:alt_shift_toggle"

EndSection

Azt, hogy az egyes gombok megnyomásakor mi történjen -- hangerőt növeljen, csökkentsen, stb. -- az általában az ablakkezelő feladata. Én icewm-et használok és a ~/.icewm/keys fájlban lehet megadni a gyorsbillentyűk kódját és hogy milyen parancsot hajtson végre.

Az én keys fájlom így néz ki:

key "Superl_L+t" x-terminal-emulator

key "Superl_L+s" serterm

key "Alt+Ctrl+t" x-terminal-emulator

key "Alt+Ctrl+g" gimp

key "Alt+Ctrl+n" mozilla-firefox

key "Alt+Ctrl+m" mozilla-thunderbird

key "XF86AudioLowerVolume" amixer set Master 5%-

key "XF86AudioRaiseVolume" amixer set Master 5%+

key "XF86AudioMute" amixer set Master toggle

key "XF86HomePage" mozilla-firefox

key "XF86Mail" mozilla-thunderbird mailto:

Gericom Blockbuster notebook:

// Gericom Blockbuster notebook

partial alphanumeric_keys

xkb_symbols "gericom" {

// Top

key { [ XF86Mail ] };

key { [ XF86WWW ] };

key { [ XF86AudioMedia ] };

key { [ XF86AudioMute ] };

key { [ XF86AudioPlay, XF86AudioPause ] };

key { [ XF86AudioStop, XF86Eject ] };

// With "fn" button

key { [ XF86AudioLowerVolume ] };

key { [ XF86AudioRaiseVolume ] };

};

Oldalak