Már egy ideje próbálkozom linux alatt a billentyűzeteimen lévő extra gombok beüzemelésével, de sajnos sosem sikerült. Erre való a LinEAK, de mindig a következő hibával találkoztam, s nem tudtam mit kezdeni vele.
*** Xlib error caught *** Major opcode of failed request: 33 (XKEYBOARD) Minor opcode of failed request: 0 (XkbSetMap) Resource ID of failed request: 125 Serial number of failed request: 39 Error code: 10 Type: 0 Maybe we should exit now?
Most végre rájöttem. Ez csak azért van, mert az X már hamarabb lekezel egy-egy gombot (bár ebben nem vagyok egészen biztos, de némi köze lehet az igazsághoz). Ez a következőképpen lehet megnézni:
$ xmodmap -pke ... keycode 160 = XF86AudioMute ...
Két megoldás van. Először is módosíthatod az xmodmappel ezeket a beállításokat, vagy kiszeded a ~/.lineak/lineakd.conf-ból ezeket, az X által lekezelt gombokat. Nálam a következő kettő volt problémás:
#Mute = #Next =
Ezután már hibaüzenet nélkül elindult a lineakd.
A másik lehetőség az billentyűzettérkép átállítása az xmodmappel. Először elmentjük a régi beállításokat:
xmodmap -pke > ~/.xmodmaprc
Az extra gombok megnyomásakor keletkező XF86* eseményeket az xev paranccsal lehet kideríteni. A némítás gomb megnyomásakor például egy ilyen esemény keletkezik:
... KeyRelease event, serial 23, synthetic NO, window 0x3400001, root 0x7d, subw 0x0, time 882632, (334,442), root:(338,489), state 0x10, keycode 160 (keysym 0x1008ff12, XF86AudioMute), same_screen YES, XLookupString gives 0 bytes: "" ...
Tehát az előbb létrehozott ~/.xmodmaprc fájlból kell eltávolítani a 160-as billentyűkódhoz rendelt XF86AudioMutere történő hivatkozást. A szerkesztés után az én esetemben így néz ki a fájl előbb már bemutatott sora:
keycode 160 =
Majd visszatöltjük az új beállításokat:
$ xmodmap ~/.xmodmaprc
Ezután már nem kezeli le az X a gombot, maradhat a lineakdnek a feladat. Újabb xev teszt:
... KeyRelease event, serial 28, synthetic NO, window 0x3200001, root 0x7d, subw 0x0, time 1047755, (285,488), root:(289,535), state 0x10, keycode 160 (keysym 0x0, NoSymbol), same_screen YES, XLookupString gives 0 bytes: "" ...
Esetlegesen még szükséges lehet a setxkbmap parancs kiadása is, például a következő módon:
setxkbmap -model pc105 -layout hu -variant basicKDE esetén az xmodmap futtatására létre lehet hozni egy szkriptet a ~/.kde/Autostart/ könyvtárban (bármilyen néven).
#!/bin/bash xmodmap ~/.xmodmaprcNéhány lineakd szkript, illetve beállítás:
# group media Media = xmms --play Stop = xmms --stop Next = xmms --fwd Play|Pause = xmms --pause Previous = xmms --rew # last group Calculator = kcalc My Computer = /usr/bin/kdesktop_lock --forcelock Sleep = ~/.lineak/scripts/sleep # volume VolumeDown = dcop kmix Mixer0 decreaseVolume 0 VolumeUp = dcop kmix Mixer0 increaseVolume 0 Mute = ~/.lineak/scripts/muteA hivatkozott szkriptek:
$ cat .lineak/scripts/mute #!/bin/bash if [ $(dcop kmix Mixer0 mute 0) = true ] then dcop kmix Mixer0 setMute 0 false else dcop kmix Mixer0 setMute 0 true fi
$ cat .lineak/scripts/sleep #!/bin/sh xset dpms force off /usr/bin/kdesktop_lock --forcelockFelhasznált irodalom:
Legutóbbi hozzászólások
8 év 38 hét
9 év 27 hét
9 év 30 hét
9 év 49 hét
10 év 51 hét
11 év 4 hét
11 év 4 hét
11 év 5 hét
11 év 15 hét
11 év 37 hét