Kroki zwiększania czułości myszy:
Najpierw wyświetl listę wszystkich urządzeń:
$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ PixArt USB Optical Mouse id=10 [slave pointer (2)]
⎜ ↳ ETPS/2 Elantech Touchpad id=15 [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)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ USB2.0 UVC 2M WebCam id=9 [slave keyboard (3)]
↳ Asus Laptop extra buttons id=13 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
↳ USB Keyboard id=11 [slave keyboard (3)]
↳ USB Keyboard id=12 [slave keyboard (3)]
W przykładzie widzimy, że identyfikator myszy to 10. Następnie wypisz jego właściwości:
$ xinput list-props 10
Device 'PixArt USB Optical Mouse':
Device Enabled (140): 1
Coordinate Transformation Matrix (142): 10.400000, 0.000000, 0.000000, 0.000000, 10.400000, 0.000000, 0.000000, 0.000000, 10.400000
Device Accel Profile (265): 0
Device Accel Constant Deceleration (266): 1.000000
Device Accel Adaptive Deceleration (267): 1.000000
Device Accel Velocity Scaling (268): 10.000000
Device Product ID (260): 2362, 9488
Device Node (261): "/dev/input/event5"
Evdev Axis Inversion (269): 0, 0
Evdev Axes Swap (271): 0
Axis Labels (272): "Rel X" (150), "Rel Y" (151), "Rel Vert Wheel" (264)
Button Labels (273): "Button Left" (143), "Button Middle" (144), "Button Right" (145), "Button Wheel Up" (146), "Button Wheel Down" (147), "Button Horiz Wheel Left" (148), "Button Horiz Wheel Right" (149)
Evdev Middle Button Emulation (274): 0
Evdev Middle Button Timeout (275): 50
Evdev Third Button Emulation (276): 0
Evdev Third Button Emulation Timeout (277): 1000
Evdev Third Button Emulation Button (278): 3
Evdev Third Button Emulation Threshold (279): 20
Evdev Wheel Emulation (280): 0
Evdev Wheel Emulation Axes (281): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (282): 10
Evdev Wheel Emulation Timeout (283): 200
Evdev Wheel Emulation Button (284): 4
Evdev Drag Lock Buttons (285): 0
«Matryca transformacji współrzędnych» jest dokładnie tym, czego chcemy. Pamiętaj, jego №142.
Zmieniając tę właściwość, możemy zwiększyć prędkość wskaźnika. Te wartości są w rzeczywistości macierzą transformacji używaną do obliczania ruchu wskaźnika . Z linku:
Domyślnie CTM dla każdego urządzenia wejściowego w X jest macierzą tożsamości. Na przykład załóżmy, że dotykasz ekranu dotykowego w punkcie (400, 197) na ekranie:
⎡ 1 0 0 ⎤ ⎡ 400 ⎤ ⎡ 400 ⎤
⎜ 0 1 0 ⎥ · ⎜ 197 ⎥ = ⎜ 197 ⎥
⎣ 0 0 1 ⎦ ⎣ 1 ⎦ ⎣ 1 ⎦
Współrzędne X i Y zdarzenia urządzenia są wprowadzane do drugiej macierzy obliczeń. Wynik obliczeń polega na odwzorowaniu współrzędnych X i Y zdarzenia na ekran. Jak pokazano, macierz tożsamości odwzorowuje współrzędne urządzenia na współrzędne ekranu bez żadnych zmian.
Więc, co chcemy zrobić z matrycy - jest ustalenie wartości, które zgodnie z X i Y do jakiejkolwiek innej konkretnej wartości, a to byłoby zmienić szybkość wskaźnika. Przykład z mojego komputera:
$ xinput set-prop 10 142 2.400000, 0.000000, 0.000000, 0.000000, 2.400000, 0.000000, 0.000000, 0.000000, 1.000000
Jest xinput set-prop <device-id> <property-number> <property-values>
. Zagraj w to, dopóki nie znajdziesz odpowiednich. Uwaga: nie zmieniaj ostatniej wartości macierzy. To był mój błąd, kiedy próbowałem go dostać do pracy - w tym przypadku po prostu nie zobaczysz żadnej różnicy.
Przynajmniej najnowsze wersje xinput
pozwalają określać urządzenia i opcje według nazwy, więc ten przykład może również działać:
xinput set-prop 'PixArt USB Optical Mouse' 'Coordinate Transformation Matrix' 1.2 0 0 0 1.2 0 0 0 1
Te zmiany są aktywne tylko w bieżącej sesji, więc po wybraniu dobrej czułości należy zastosować ją na stałe, dodając ją xorg.conf
(lub tworząc plik taki jak /etc/X11/xorg.conf.d/40-mouse-sensitivity.conf
):
Section "InputClass"
Identifier "PixArt USB Optical Mouse"
MatchIsPointer "Yes"
Option "TransformationMatrix" "1.2 0 0 0 1.2 0 0 0 1"
EndSection
Jeśli nie masz pewności, czy to działa, zmień to na dużą wartość, np. 5.0
Zapisz plik i uruchom ponownie.
Podziękowania: Jestem wdzięczny Simonowi Thumowi z listy mailingowej Xorg, on był tym, który dał wskazówkę dotyczącą matrycy.