Basta forzare il puntatore per saltare i pixel, ecco come:
Dispositivi di input del primo elenco:
$ 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)]
Nell'esempio vediamo che l'id del mouse è 10. Elenco successivo delle sue proprietà:
$ xinput list-props 10
Device 'PixArt USB Optical Mouse':
Device Enabled (140): 1
Coordinate Transformation Matrix (142): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
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
Vogliamo la «Matrice di trasformazione coordinata», ricordiamo la sua №142.
Modificando questa proprietà è possibile aumentare la velocità del puntatore. È una matrice di trasformazione, utilizzata per calcolare un movimento del puntatore . Dal link:
Per impostazione predefinita, il marchio comunitario per ogni dispositivo di input in X è la matrice di identità. Ad esempio, supponiamo che si tocchi un touchscreen nel punto (400, 197) sullo schermo:
⎡ 1 0 0 ⎤ ⎡ 400 ⎤ ⎡ 400 ⎤
⎜ 0 1 0 ⎥ · ⎜ 197 ⎥ = ⎜ 197 ⎥
⎣ 0 0 1 ⎦ ⎣ 1 ⎦ ⎣ 1 ⎦
Le coordinate X e Y dell'evento del dispositivo vengono immesse nella seconda matrice del calcolo. Il risultato del calcolo è dove le coordinate X e Y dell'evento sono mappate sullo schermo. Come mostrato, la matrice identità identifica le coordinate del dispositivo sulle coordinate dello schermo senza alcuna modifica.
Quindi, vogliamo aumentare i valori in base alla x ed y , aumentando così la velocità del puntatore. Un esempio dal mio PC:
$ xinput set-prop 10 142 2.400000, 0.000000, 0.000000, 0.000000, 2.400000, 0.000000, 0.000000, 0.000000, 1.000000
Lo è xinput set-prop <device-id> <property-number> <property-values>
. Gioca un po 'con questo fino a trovare quello appropriato. Nota: non modificare l'ultimo valore della matrice. Questo è stato il mio errore quando l'ho provato per ottenere lavoro - in questo caso non vedrai alcuna differenza.
Ringraziamenti: sono grato a Simon Thum dalla mailing list di xorg, è stato lui a dare il suggerimento sulla matrice.
UPD : nota, alcuni giochi Windows con Wine potrebbero avere un comportamento del puntatore strano (ad esempio notato che l'obiettivo nel vecchio Counter Strike 1.6 declina verso il basso, fino a quando non fissa il pavimento, indipendentemente da come muovi il mouse) , in questo caso basta resettare x e y di CTM a 1 prima di eseguire il gioco.