Thursday, July 31, 2014

Tagged under: , , ,

How to set mouse speed in Ubuntu programmatically


















This article is copied from http://techtots.blogspot.com/2012/03/controlling-mouse-speed-in-ubuntu-when.html

My laptop comes with a Targus cordless mouse which moves too fast even when both Accelleration and Sensitivity in Pointer Speed settings is set to the lowest in Ubuntu.

There's another method to control input speed via the xinput command.

To begin, execute "xinput list" to obtain the list of inputs available:

mike@myhost:~$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SONiX Targus Soft-Touch Cordless Mouse id=8 [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)]
↳ Power Button id=7 [slave keyboard (3)]
↳ Dell Dell USB Entry Keyboard id=9 [slave keyboard (3)]
↳ Dell WMI hotkeys id=10 [slave keyboard (3)]



From the output above, it's quite obvious which input device we'll be working with (id=8 if you can't spot it). Next, we'll move on to list down the device properties:

mike@myhost:~$ xinput list-props 8
Device 'SONiX Targus Soft-Touch Cordless Mouse':
Device Enabled (143): 1
Coordinate Transformation Matrix (145): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (260): 0
Device Accel Constant Deceleration (261): 1.000000
Device Accel Adaptive Deceleration (262): 1.000000
Device Accel Velocity Scaling (263): 10.000000
Evdev Axis Inversion (264): 0, 0
Evdev Axes Swap (266): 0
Axis Labels (267): "Rel X" (153), "Rel Y" (154)
Button Labels (268): "Button Left" (146), "Button Middle" (147), "Button Right" (148), "Button Wheel Up" (149), "Button Wheel Down" (150), "Button Horiz Wheel Left" (151), "Button Horiz Wheel Right" (152), "Button Side" (524), "Button Extra" (525), "Button Unknown" (259), "Button Unknown" (259), "Button Unknown" (259), "Button Unknown" (259)
Evdev Middle Button Emulation (269): 0
Evdev Middle Button Timeout (270): 50
Evdev Wheel Emulation (271): 0
Evdev Wheel Emulation Axes (272): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (273): 10
Evdev Wheel Emulation Timeout (274): 200
Evdev Wheel Emulation Button (275): 4
Evdev Drag Lock Buttons (276): 0


To properly "decelerate" the mouse pointer, we'll need to play around with 2 properties:

Device Accel Constant Deceleration (261)
Device Accel Adaptive Deceleration (262)

To update a property value, use the "--set-prop" option like below:

mike@myhost:~$ xinput --set-prop 8 261 4

Note the values used:

8: device id
261: property id
4: value of the property to be set

Setting both property value to 4 works for me; YMMV.

Have fun tweaking your input :)

0 comments:

Post a Comment