Penso che l'opzione che stai cercando sia ButtonMapping. Ho avuto una funzione fastidiosa simile con il mio mouse ( https://www.kensington.com/en/no/4493/k72327eu/slimblade-trackball ), quindi l' ho capito poco fa.
L'opzione "EmulateWheelButton" dovrebbe funzionare anche se si disabilita il pulsante o si riassegna la mappatura ...
Ora, l'ho provato solo con xinput su evdev. È molto più veloce provare le cose con xinput e quindi puoi semplicemente aggiungere uno script alle tue "Applicazioni di avvio" invece di dover modificare / etc / X11 / e riavviare X più volte.
Quindi questo dovrebbe essere tutto ciò di cui hai bisogno in xorg.d / mouse.conf (le righe commentate sono ciò che dovrebbe essere necessario se non vuoi usare uno script di accesso per farlo per utente), anche se potresti non averne bisogno a tutto se usi 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
Ecco cosa ho fatto per capire la mia soluzione (sostituisci ovviamente il mio dispositivo con il tuo dispositivo nei seguenti comandi):
Mostra dispositivi:
$ 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)]
Scopri quali proprietà sono supportate per quel dispositivo:
$ 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
Ora proviamo:
$ 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
Ora il mio pulsante in alto a destra funziona solo come scorrimento automatico invece del comportamento esasperante della schiena!