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:
<_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. Énicewm-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-emulatorkey "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" buttonkey { [ XF86AudioLowerVolume ] };
key { [ XF86AudioRaiseVolume ] };
};