Simplemente fuerce el puntero a omitir píxeles, así es como:
Primera lista de dispositivos de entrada:
$ 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)]
En el ejemplo, vemos que la identificación del mouse es 10. A continuación, enumere sus propiedades:
$ 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
Queremos la «Matriz de transformación coordinada», recordemos su №142.
Al cambiar esta propiedad podemos aumentar la velocidad del puntero. Es una matriz de transformación, utilizada para calcular un movimiento de puntero . Desde el enlace:
Por defecto, la CTM para cada dispositivo de entrada en X es la matriz de identidad. Como ejemplo, digamos que toca una pantalla táctil en el punto (400, 197) en la pantalla:
⎡ 1 0 0 ⎤ ⎡ 400 ⎤ ⎡ 400 ⎤
⎜ 0 1 0 ⎥ · ⎜ 197 ⎥ = ⎜ 197 ⎥
⎣ 0 0 1 ⎦ ⎣ 1 ⎦ ⎣ 1 ⎦
Las coordenadas X e Y del evento del dispositivo se ingresan en la segunda matriz del cálculo. El resultado del cálculo es donde las coordenadas X e Y del evento se asignan a la pantalla. Como se muestra, la matriz de identidad asigna las coordenadas del dispositivo a las coordenadas de la pantalla sin ningún cambio.
Entonces, queremos aumentar los valores de acuerdo con x e y , aumentando así la velocidad del puntero. Un ejemplo de mi PC:
$ xinput set-prop 10 142 2.400000, 0.000000, 0.000000, 0.000000, 2.400000, 0.000000, 0.000000, 0.000000, 1.000000
Es xinput set-prop <device-id> <property-number> <property-values>
. Juega un poco con esto hasta que encuentres el apropiado. Nota: no cambie el último valor de la matriz. Ese fue mi error cuando lo intenté para conseguir trabajo, en este caso simplemente no verá ninguna diferencia.
Agradecimientos: Estoy agradecido con Simon Thum de la lista de correo de xorg, él fue quien dio la pista sobre la matriz.
UPD : tenga en cuenta que algunos juegos de Windows que se ejecutan con Wine pueden tener un comportamiento de puntero extraño (por ejemplo, notado, que el objetivo en el antiguo Counter Strike 1.6 disminuye, hasta que mira el piso, no importa cómo mueva el mouse) , en este caso simplemente reinicie x e y de CTM a 1 antes de ejecutar el juego.