Mam mysz, której używam do przycisków. Chcę wyłączyć tylko ruch myszy. Fizyczne zakrycie czujnika nie działa.
Mam mysz, której używam do przycisków. Chcę wyłączyć tylko ruch myszy. Fizyczne zakrycie czujnika nie działa.
Odpowiedzi:
Możesz użyć xinput
.
>xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Mouse0 id=6 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Keyboard0
Tam dostajesz nazwę myszy w tym przypadku Mouse0.
Za pomocą następującego polecenia spowalniasz prędkość myszy o współczynnik 100000, który jest wtedy w zasadzie zerowy.
xinput --set-prop 6 'Device Accel Constant Deceleration' 100000
lub
xinput --set-prop Mouse0 'Device Accel Constant Deceleration' 100000
Aby przywrócić, możesz użyć tego samego
xinput --set-prop Mouse0 'Device Accel Constant Deceleration' 1
Moja mysz nie ma właściwości „Device Accel Constant Deceleration”. Nadal byłem w stanie wyłączyć ruch za pomocą
xinput set-prop 9 266 -1
xinput set-prop 9 269 0 1
i można go ponownie włączyć za pomocą
xinput set-prop 9 269 1 0
input set-prop 9 266 0.0
Wyłączyłem również moje przyciski za pomocą
xinput set-button-map 9 0 0 0
Urządzenie 9 to moja optyczna mysz optyczna USB Apple firmy Mitsumi .
Lista urządzeń
Device 'Mitsumi Electric Apple Optical USB Mouse':
Device Enabled (132): 1
Coordinate Transformation Matrix (134): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Accel Speed (266): -1.000000
libinput Accel Speed Default (267): 0.000000
libinput Accel Profiles Available (268): 0, 0
libinput Accel Profile Enabled (269): 0, 1
libinput Accel Profile Enabled Default (270): 1, 0
libinput Natural Scrolling Enabled (271): 0
libinput Natural Scrolling Enabled Default (272): 0
libinput Send Events Modes Available (250): 1, 0
libinput Send Events Mode Enabled (251): 0, 0
libinput Send Events Mode Enabled Default (252): 0, 0
libinput Left Handed Enabled (273): 0
libinput Left Handed Enabled Default (274): 0
libinput Scroll Methods Available (275): 0, 0, 1
libinput Scroll Method Enabled (276): 0, 0, 0
libinput Scroll Method Enabled Default (277): 0, 0, 0
libinput Button Scrolling Button (278): 2
libinput Button Scrolling Button Default (279): 274
libinput Middle Emulation Enabled (280): 0
libinput Middle Emulation Enabled Default (281): 0
Device Node (253): "/dev/input/event4"
Device Product ID (254): 1452, 772
libinput Drag Lock Buttons (282): <no items>
libinput Horizonal Scroll Enabled (255): 1
Jeśli man 4 mousedrv
poprawnie czytam , możesz ustawić w sekcji CorePointer pliku xorg.conf,
Option "EmulateWheel" true
Option "EmulateWheelButton" 0
Option "EmulateWheelInertia" 10000
co przekształciłoby ruchy w zdarzenia przycisku kółka myszy, ale ustawienie bezwładności sprawiłoby, że byłoby zbyt niewrażliwe, aby je kiedykolwiek zarejestrować. W nowoczesnych systemach jest to evdev zamiast mousedrv. Można to również ustawić w środowisku wykonawczym za pomocą xinput, na przykład:
xinput --set-prop 17 'Evdev Wheel Emulation' 1
xinput --set-prop 17 'Evdev Wheel Emulation Button' 0
xinput --set-prop 17 'Evdev Wheel Emulation Inertia' 10000
Gdzie 17 powinno być twoim numerem urządzenia. Korzystam z funkcji, aby uzyskać ten numer według nazwy urządzenia i przechowywać go w $ device-id podczas skryptu uruchamiania.
set_device_id() {
device_id=$(xinput --list | grep -m 1 "$1")
device_id=${device_id##*id=}
device_id=${device_id%%[[:space:]]*}
}
Ma to niestety efekt uboczny polegający na wyłączeniu wejścia kółka przewijania urządzenia.
xinput list 6
(gdzie6
jest urządzenie). Dokumentację na temat właściwości można znaleźć tutaj: x.org/wiki/Development/Documentation/PointerAcceleration