Trochę się dzisiaj namęczyłem przy skonfigurowaniu swojej myszy. Z pomocą tego forum [forum.ubuntu.pl]i googli udało mi się wykonać to co chciałem i postanowiłem podzielić się z Wami rozwiązaniem :).
Po standardowej instalacji mysz A4Tech WOP-35 działa w sposób powiedzmy "niekompletny":
Aby poprawić działanie myszy należy wykonać następujące kroki (pierwsza część tego how-to pochodzi z UbuntuForums.org):
-
Instalujemy evdev, który pozwala na obsługę urządzeń USB:
sudo apt-get install xserver-xorg-input-evdev
-
Upewniamy się, że mamy podłączoną mysz :)
-
Odczytujemy informacje o naszej myszy:
cat /proc/bus/input/devices
W moim przypadku otrzymałem coś takiego
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/class/input/input0
H: Handlers=kbd event0
B: EV=120013
B: KEY=4 2000000 3802078 f840d001 f2ffffdf ffefffff ffffffff fffffffe
B: MSC=10
B: LED=7
I: Bus=0010 Vendor=001f Product=0001 Version=0100
N: Name="PC Speaker"
P: Phys=isa0061/input0
S: Sysfs=/class/input/input1
H: Handlers=kbd event1
B: EV=40001
B: SND=6
I: Bus=0003 Vendor=09da Product=0006 Version=0001
N: Name="A4Tech USB Optical Mouse"
P: Phys=usb-0000:00:1f.2-2/input0
S: Sysfs=/class/input/input2
H: Handlers=mouse0 event2 ts0
B: EV=7
B: KEY=7f0000 0 0 0 0 0 0 0 0
B: REL=143
Wytłuszczonym drukiem zaznaczyłem nazwę naszej myszy i handler jaki ją obsługuje. Jednak z tego co jest napisane na ww. stronie numer zdarzenia (eventX) czasami się zmienia wobec czego potrzebne jest ominięcie tego problemu.
-
Tworzymy nowy plik
sudo gedit /etc/udev/rules.d/19-local.rules
i umieszczamy w nim następujący wpis:
KERNEL=="event[0-9]*", SYSFS{../name}=="A4Tech USB Optical Mouse", NAME="input/event9"
-
Pogrubiona nazwa musi być taka sama jak odczytana w 3 punkcie.
-
Liczba w pogrubionym event9 musi wskazywać na zdarzenie, które jeszcze nie jest wykorzystywane. Aby znaleźć takie zdarzenie wykonujemy polecenie:
ls /dev/input/
i otrzymujemy:
by-id by-path event0 event1 mice mouse0 ts0
Jak widać event9 jest wolne, więc można spokojnie go użyć.
-
Wykonujemy zapasową kopię pliku xorg.conf:
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
-
Edytujemy zawartość pliku xorg.conf:
sudo gedit /etc/X11/xorg.conf
-
Znajdujemy w tym pliku sekcję dotyczącą naszej myszy. Prawdopodobnie będzie coś w stylu:
Section "InputDevice"
Identifier "Configured Mouse"
EndSection
i zastępujemy następującym wpisem:
Section "InputDevice"
Identifier "A4 Tech WOP-35"
Driver "evdev"
Option "CorePointer"
Option "Device" "/dev/input/event9"
Option "ZAxisMapping" "6 7"
Option "Buttons" "11"
EndSection
Numerek w eventX powinien być taki, jaki wybraliśmy w kroku 4.
-
Upewniamy się, że pogrubiona nazwa powyżej zgadza się z pogrubioną nazwą w sekcji ServerLayout (poniżej):
Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "ATI 3D" 0 0
InputDevice "Labtec Multimedia Keyboard"
InputDevice "A4 Tech WOP-35"
EndSection
-
Restartujemy cały komputer (nie tylko X'y, gdyż przy restarcie tylko X'ów nie zadziała nam to co zrobiliśmy w punkcie 4). Jeśli zrobiliśmy jakiś błąd i X'y nam nie wstaną to należy podmienić plik xorg.conf kopią zapasową wykonaną w punkcie 5:
sudo cp /etc/X11/xorg.conf.bak /etc/X11/xorg.conf
-
Jeśli wszystko poszło tak jak trzeba, to po restarcie komputera niedziałająca rolka powinna zadziałać. Jej działanie można sprawdzić np. przy pomocy programiku xev uruchamianego w konsoli. Jeśli przy kręceniu pokrętłami dostajemy komunikaty w stylu:
ButtonPress event, serial 28, synthetic NO, window 0x2a00001,
root 0x76, subw 0x0, time 3505706855, (177,2), root:(600,307),
state 0x10, button 4, same_screen YES
ButtonRelease event, serial 28, synthetic NO, window 0x2a00001,
root 0x76, subw 0x0, time 3505706855, (177,2), root:(600,307),
state 0x810, button 4, same_screen YES
ButtonPress event, serial 28, synthetic NO, window 0x2a00001,
root 0x76, subw 0x0, time 3505707680, (177,2), root:(600,307),
state 0x10, button 5, same_screen YES
ButtonRelease event, serial 28, synthetic NO, window 0x2a00001,
root 0x76, subw 0x0, time 3505707680, (177,2), root:(600,307),
state 0x1010, button 5, same_screen YES
ButtonPress event, serial 28, synthetic NO, window 0x2a00001,
root 0x76, subw 0x0, time 3505709942, (177,2), root:(600,307),
state 0x10, button 6, same_screen YES
ButtonRelease event, serial 28, synthetic NO, window 0x2a00001,
root 0x76, subw 0x0, time 3505709942, (177,2), root:(600,307),
state 0x10, button 6, same_screen YES
ButtonPress event, serial 28, synthetic NO, window 0x2a00001,
root 0x76, subw 0x0, time 3505710670, (177,2), root:(600,307),
state 0x10, button 7, same_screen YES
ButtonRelease event, serial 28, synthetic NO, window 0x2a00001,
root 0x76, subw 0x0, time 3505710670, (177,2), root:(600,307),
state 0x10, button 7, same_screen YES
to znaczy, że jest wszystko oki :).
-
Jeśli komuś wystarczy samo działanie pokręteł to może już w tym miejscu zakończyć :). Tak jak i kończy się przetłumaczony z grubsza poradnik, do którego linka podałem wcześniej :).
-
Jeśli chcemy zamienić sobie miejscami swoje kółka, tak aby przewijanie strony odbywało się za pomocą wyższej (bliższej środka) rolki, to może teraz pokombinować z ustawieniami za pomocą xmodmap. Aby dokonać takiej zamiany należy wykonać polecenie:
xmodmap -e "pointer = 1 2 3 6 7 5 4 8 9 10 11"
-
Jeśli komuś przeszkadza środkowy przycisk w niższym (zewnętrznym) kółku i chciałby mieć go pod kciukiem, to może wykonać następujące polecenie:
xmodmap -e "pointer = 1 8 3 4 5 6 7 2 9 10 11"
-
Jeśli ktoś chce połączyć pkt. 12 z 13 (tak jak ja), to może wykonać polecenie:
xmodmap -e "pointer = 1 8 3 6 7 5 4 2 9 10 11"
-
Jeśli ktoś chce mieć jeszcze inną kombinację, to zapraszam do lektury man xmodmap :).
-
No dobrze, polecenie z xmodmap działa ładnie, ale nie będziemy go wklepywać za każdym razem w konsoli po uruchomieniu X'ów :). W związku z tym, trzeba dodać je do autostartu. W przypadku XFCE4, którego ja używam robi się to poprzez stworzenie odpowiedniego pliku:
gedit ~/.config/autostart/XModMap.desktop
i wstawienie do niego następującej zawartości:
[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=XModMap
Comment=Zmienia kolejnosc przyciskow myszy
Exec=xmodmap -e "pointer = 1 8 3 6 7 5 4 2 9 10 11"
StartupNotify=false
Terminal=false
Hidden=false
-
Zapisujemy plik, restart X'ów (ctrl+alt+backspace) i powinno wszystko działać :).
Jeśli ktoś ma jakieś uwagi co do tego poradnika lub coś mu nie zadziałało, to niech pisze w komentarzach :).