Ne želim ga ureći, ali me ovaj miš već služi 7 godina. Istina, iz dva puta.
Urekao sam ga. Nije poptuno pokvaren, ali je lijevo dugme postalo nepouzdano
nakon dugo vremena
Kao i većina uređaja na Linuxu, radi dovoljno dobro već nakon priključivanja. Prepoznati su svi ekstra dugmići, čak i oni koji nisu radili na Windowsu kao što je horizontalno skrolovanje sa kolutićem. Stvar koja kvari perfektan učinak su pobrkani dugmići za naprijed i nazad. Osim toga htio sam staviti dugmić između "naprijed/nazad" da osvježava stranicu, tj. da se ponaša kao da sam pritisno F5 (dugmić označen na slici).
Pogrešni "naprijed/nazad" dugmići
Prvi problem, sa pobrkanim dugmićima, je bilo relativno jednostavno riješiti. Pomoću xinput-a možete saznati trenutni raspored dugmića.
$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Genius Ergo Mouse id=8 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=9 [slave keyboard (3)]
↳ Genius Ergo Mouse id=10 [slave keyboard (3)]
Moj miš je Genius Ergo Mouse, a njegov id je 8. xinput ima mnogo opcija, a nama je interesantna query-state opcija. Pomoću nje možete vidjeti status uređaja, tj. u našem slučaju status pritisnutih dugmića. Postoje i drugi načini kako da saznate koje je koje dugme, ali je xinput koristan jer ga sigurno već imate instaliranog. Dok sam pritisno dugme za naprijed na mišu ovo je ispis komande (sa izostavljenim neinteresantnim stvarima):
$ xinput query-state 8
...
button[7]=up
button[8]=down
button[9]=up
...
Istu stvar sam ponovio za "nazad" dugmić, i saznao da je broj 9. Sad kad znamo koji je broj, možemo koristiti xinput da ih zamjenimo. Prvo izlistamo sve dugmiće što miš ima sa:
$ xinput get-button-map 8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Nakon toga zamjenimo mjesta 8 i 9.
$ xinput set-button-map 8 1 2 3 4 5 6 7 9 8 10 11 12 13 14 15
Da bi promjena ostala trajna možete staviti gore navedenu komandu da se izvrši pri pokretanju X sesije. Meni je draže koristiti Xorg konfiguracioni fajl. Ovako izgleda (izostavljene stvari nevezane za miš):
Section "InputClass"
Identifier "Ergo Mouse"
MatchUSBID "0458:0087"
Option "ButtonMapping" "1 2 3 4 5 6 7 9 8 10"
EndSection
MatchUSBID sam saznao pomoću lsusb i služi za identifikaciju uređaja, da se postavke primjene za miš. To je onaj par rječi od 4 slova/cifre poslije ID, sa dvotačkom između.
$ lsusb
...
Bus 002 Device 002: ID 0458:0087 KYE Systems Corp. (Mouse Systems) Ergo 525V Laser Mouse
...
Dugmić za F5
Za mijenjanje funkcije dugmića na mišu sam koristio udev direktno. Vjerovatno postoji i drugi način (xbindkeys možda), ali mi se udev način činio mnogo "čistijim". Pronašao sam ovaj članak koji objašnjava kako da se izvede sve.
Pomoću evtest programa možemo saznati scancode dugmića.
$ evtest
...
Event: time 1472069345.467695, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90006
Event: time 1472069345.467695, type 1 (EV_KEY), code 63 (KEY_F5), value 1
Event: time 1472069345.467695, -------------- SYN_REPORT ------------
...
Scancode je onaj broj poslije "value", znači za nas je 90006. Opet nam
je potreban i ID što smo koristili maloprije za Xorg konfiguracioni fajl.
Na onom gore blogu piše da koristimo keyboard:usb:vXXXXpXXXX*
, gdje X-ovi
predstavljaju naše ID-ove. Međutim nisam imao uspijeha s tim, ali sam našao
rješenje na ovom
blogu. Treba promjeniti u evdev:input:b*vXXXXpXXXX*
. Pokušao sam pronaći
zašto, ali nisam ništa pronašao. Ako neko zna, bilo bi dobro da podijeli.
Sve podatke sam ubacio u fajl pod /etc/udev/hwdb.d/10-genius-mouse.hwdb
.
Izgleda ovako:
evdev:input:b*v0458p0087*
KEYBOARD_KEY_90006=f5
Posljednji korak je da pokrenete sljedeće komande, da se ažurira i aktivira udev baza podataka:
udevadm hwdb --update
udevadm trigger