Я думаю, что вы ищете вариант ButtonMapping. У меня была похожая раздражающая функция с моей мышью ( https://www.kensington.com/en/no/4493/k72327eu/slimblade-trackball ), поэтому я понял это некоторое время назад.
Опция «EmulateWheelButton» по-прежнему должна работать, даже если вы отключите кнопку или переназначите сопоставление ...
Теперь я проверял это только с помощью xinput на evdev. Это намного быстрее попробовать с xinput, и тогда вы можете просто добавить скрипт в «Startup Applications» вместо того, чтобы изменять / etc / X11 / и перезапускать X снова и снова.
Так что это должно быть все, что вам нужно в xorg.d / mouse.conf (закомментированные строки - это то, что нужно, если вы не хотите использовать скрипт входа в систему для каждого пользователя), хотя вам это может не понадобиться в все, если вы используете xinput:
Section "InputDevice"
Identifier "Configured Mouse"
Driver "evdev"
Option "Device" "/dev/input/mice"
Option "Protocol" "auto"
#Option "EmulateWheel" "1"
#Option "EmulateWheelButton" "8"
#Option "ButtonMapping" "1 2 3 4 5 6 7 0 9 10 11 12"
EndSection
Вот что я сделал, чтобы выяснить свое решение (очевидно, замените мое устройство вашим устройством в следующих командах):
Показать устройства:
$ xinput list
Virtual core pointer id=2 [master pointer (3)]
↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
↳ ELAN Touchscreen id=11 [slave pointer (2)]
↳ SynPS/2 Synaptics TouchPad id=13 [slave pointer (2)]
↳ Kensington Kensington Slimblade Trackball id=18 [slave pointer (2)]
Посмотрите, какие свойства поддерживаются для этого устройства:
$ xinput list-props "Kensington Kensington Slimblade Trackball"
Device 'Kensington Kensington Slimblade Trackball':
Device Enabled (142): 1
Coordinate Transformation Matrix (144): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (273): 0
Device Accel Constant Deceleration (274): 1.000000
Device Accel Adaptive Deceleration (275): 1.000000
Device Accel Velocity Scaling (276): 10.000000
Device Product ID (260): 1149, 8257
Device Node (261): "/dev/input/event17"
Evdev Axis Inversion (277): 0, 0
Evdev Axes Swap (279): 0
Axis Labels (280): "Rel X" (152), "Rel Y" (153), "Rel Vert Wheel" (573)
Button Labels (281): "Button Left" (145), "Button Middle" (146), "Button Right" (147), "Button Wheel Up" (148), "Button Wheel Down" (149), "Button Horiz Wheel Left" (150), "Button Horiz Wheel Right" (151), "Button Side" (679), "Button Unknown" (263), "Button Unknown" (263), "Button Unknown" (263), "Button Unknown" (263)
Evdev Scrolling Distance (282): 1, 1, 1
Evdev Middle Button Emulation (283): 0
Evdev Middle Button Timeout (284): 50
Evdev Third Button Emulation (285): 0
Evdev Third Button Emulation Timeout (286): 1000
Evdev Third Button Emulation Button (287): 3
Evdev Third Button Emulation Threshold (288): 20
Evdev Wheel Emulation (289): 1
Evdev Wheel Emulation Axes (290): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (291): 10
Evdev Wheel Emulation Timeout (292): 200
Evdev Wheel Emulation Button (293): 8
Evdev Drag Lock Buttons (294): 0
Теперь давайте попробуем:
$ xinput set-button-map "Kensington Kensington Slimblade Trackball" 1 2 3 4 5 6 7 0 9 10 11 12
$ xinput set-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation" 1
$ xinput set-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Button" 8
Теперь моя верхняя правая кнопка работает только в режиме автопрокрутки, а не в ярости!