Turn mouse acceleration off on Ubuntu or any other Linux PC

Tux mouseI must admit that I'm no gamer. Actually the only game I play occasionally is Urban Terror FPS. I don't want to spend those 15 minutes a month playing at the end of TAB key players list. Recently I've discovered that my gaming improves when I turn the mouse acceleration off. So lets talk about how to do this in Linux operating system. I'm not talking about gnome-mouse-properties because when you use GUI to turn the mouse acceleration off it doesn't really gets turned off, it is only reduced. In this article I will show you how to turn your mouse acceleration completely off. Follow me...

First we will list all input devices on your PC because we want to pinpoint your mouse and kill the mouse acceleration with surgical precision, only for the mouse device you use to play. We can list all connected USB devices like this:

xinput list

This is an example of this commands output:

⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Logitech USB Optical Mouse              	id=9	[slave  pointer  (2)]
⎜   ↳ Wacom Bamboo1 stylus                    	id=10	[slave  pointer  (2)]
⎜   ↳ Wacom Bamboo1 eraser                    	id=12	[slave  pointer  (2)]
⎜   ↳ Wacom Bamboo1 cursor                    	id=13	[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)]
    ↳ LITEON Technology USB Multimedia Keyboard	id=8	[slave  keyboard (3)]
    ↳ UVC Camera (046d:09a4)

My mouse is listed as "Logitech USB Optical Mouse" with id=9. We will use this id to get current mouse properties like this:

xinput list-props 9

This is an example of default mouse properties for my Logitech mouse:

Device 'Logitech USB Optical Mouse':
	Device Enabled (117):	1
	Coordinate Transformation Matrix (119):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	Device Accel Profile (244):	0
	Device Accel Constant Deceleration (245):	2.000000
	Device Accel Adaptive Deceleration (246):	1.000000
	Device Accel Velocity Scaling (247):	10.000000
	Evdev Reopen Attempts (237):	10
	Evdev Axis Inversion (248):	0, 0
	Evdev Axes Swap (250):	0
	Axis Labels (251):	"Rel X" (127), "Rel Y" (128)
	Button Labels (252):	"Button Left" (120), "Button Middle" (121), "Button Right" (122), "Button Wheel Up" (123), "Button Wheel Down" (124), "Button Horiz Wheel Left" (125), "Button Horiz Wheel Right" (126), "Button Side" (239), "Button Extra" (240), "Button Forward" (241), "Button Back" (242), "Button Task" (243), "Button Unknown" (238), "Button Unknown" (238), "Button Unknown" (238), "Button Unknown" (238)
	Evdev Middle Button Emulation (253):	2
	Evdev Middle Button Timeout (254):	50
	Evdev Wheel Emulation (255):	0
	Evdev Wheel Emulation Axes (256):	0, 0, 4, 5
	Evdev Wheel Emulation Inertia (257):	10
	Evdev Wheel Emulation Timeout (258):	200
	Evdev Wheel Emulation Button (259):	4
	Evdev Drag Lock Buttons (260):	0

Here is contents of BASH script I use to turn my mouse acceleration off:

#!/bin/bash
 
xinput set-prop 'Logitech USB Optical Mouse' 'Device Accel Profile' -1
xinput set-prop 'Logitech USB Optical Mouse' 'Device Accel Constant Deceleration' 2

The best approach is to save this script as something like mouseacc.sh inside ~/bin directory because this directory is inside your PATH environment variable and you can call scripts from this directory from anywhere in your file system. You can just hit Alt+F2 and enter mouseacc.sh to turn mouse acceleration off for selected device. Don't forget to set executable bit for your script because without this your script will refuse to do its work. This is how you can achieve this:

chmod +x ~/bin/mouseacc.sh

That's it my friends. Wish you all good gaming on your Linux PC.

4 thoughts on “Turn mouse acceleration off on Ubuntu or any other Linux PC

  1. Ramón

    Do you know what “Device Accel Adaptive Deceleration” is?

    Even if I set it to 1 or 100, I can’t see any difference.

    And… are you really having a better performance on Urban Terror with those changes?
    I have mouse acceleration disabled and low sensitivity on my OS (Linux of course) but I’m not seeing any changes ingame at all.
    Urban Terror (ioquake3 actually) have its own variables to configure those settings (sensitivity and cl_mouseAccel) and I think Urban Terror is ignoring all the external settings.

    Reply
    1. Marko Author

      About parameters description you can read more here. I must admit I don’t understand all of it and I don’t believe that tweaking it all can do miracles for your gaming performance. Remembering the times when I did a lot of gaming makes me think that you just need to get used to one setting and then you’re good. Making it possible to adjust this on Linux is great if you’re used to some other settings and need to replicate this on your Linux box :)

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *