14

I checked through the answers currently available, but none of them seems to disable mouse acceleration permanently.

xset m 0 0 seems to disable it for a brief moment, but it comes back within minutes.

How do I permanently disable mouse acceleration?

1
  • 11
    Because its very difficult to control my mouse when I don't know how fast it'll move.
    – vasily
    Jul 3, 2016 at 18:14

6 Answers 6

18

You can modify certain parameters of the mouse driver permanently, i.e. accross reboots.

First list Xorg input devices.
Results are for my present machine and will be different in yr case.
List Xorg session input devices in terminal (CRTL-ALT+T):

$ xinput --list 
⎡ Virtual core pointer                 id=2 [master pointer (3)]
⎜   ↳ Virtual core XTEST pointer       id=4 [slave pointer (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad       id=10 [slave pointer (2)]
⎜   ↳ PS/2 Generic Mouse               id=11 [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)]
    ↳ AT Translated Set 2 keyboard     id=9 [slave keyboard (3)]
    ↳ HP WMI hotkeys                   id=12 [slave keyboard (3)]

So my mouse is identified by: "PS/2 Generic Mouse" and has identifier 11. For you it might be different.

Next, to list the mouse properties, do in terminal:

$ xset q | grep -A 1 Pointer
Pointer Control:
     acceleration:  2/1    threshold:  4

To experiment with zero mouse acceleration parameters,use:

$    xset m 0/1 4

Your device may have other parameters values. You can experiment with them until you are satisfied with the result. Doing so with the cli utility xset allows you to tweak the device parameters on the fly, i.e. without restarting the Xorg session. However those settings will not be preserved across reboots.

You need to make them persistent (until the next driver or system upgrade), by creating a new file in /usr/share/X11/xorg.conf.d/. For instance:

$ cd /usr/share/X11/xorg.conf.d

$ sudo vim 80-mouse-accel-disable.conf
Section "InputClass"
    Identifier "Set mouse acceleration to zero"
    MatchIsPointer "on"
    MatchDevicePath "/dev/input/event*"

    # Default value of mouse acceleration: 2/1 4
    # Set AccelerationNumerator to zero to disable
    Option "AccelerationNumerator" "0"
    Option "AccelerationDenominator" "1"
    Option "AccelerationThreshold" "4"
EndSection

$ sudo chmod 644 80-mouse-accel-disable.conf

That's it. You can logout and back in or reboot. In principle yr mouse acceleration should be persistently set to 0.

EDIT: As suggested in one of the comments below, the above may only apply to Ubuntu 14.04 and derived flavors. In later versions the config file syntax and keywords may change slightly, although the general principle of the solution remains valid. See this tip for version 16.04 and (perhaps) later (not tested by me).

9
  • 2
    Why was it required to get the device id? That aside, your solution worked for me, thank you! Aug 7, 2016 at 9:36
  • Ty, but I think this should be done in /etc/X11/xorg.conf.d and not /usr Oct 17, 2016 at 9:07
  • is the chmod command at the end necessary? I created a file using sudo touch in that location and it already had those permissions with no need to change. Does it not work like that on other linux systems? Nov 4, 2016 at 13:07
  • @leinaD_natipaC: If the file you created already has those permissions, don't do anything else. I only included the sudo chmod... cmd to make absolutely sure that no access permission issue may further muddle things up.
    – Cbhihe
    Nov 12, 2016 at 19:22
  • I tried this using Ubuntu 16.04, and it does not work. I am using the nvidia proprietary driver, so I don't know whether the xorg files will be considered anyway Nov 19, 2016 at 11:36
9

Simplest way to simple disable the whole mouse acceleration and not modifying it:

Create the following file with your editor of choice:

$ sudo vim /usr/share/X11/xorg.conf.d/90-mouse-accel-disable.conf

Add the follow content do remove the acceleration profile:

Section "InputClass"
    Identifier "mouse"
    MatchIsPointer "on"
    Option "AccelerationProfile" "-1"
    Option "AccelerationScheme" "none"
EndSection
1
  • 1
    does anything need to be reloaded? how do we know this is working? does this affect the native touchpad / trackpad as well? that's the one I'm currently interested in modifying Oct 10, 2018 at 17:04
2

This worked for me on ubuntu 18.04 and it should also work on ubuntu 16.04.

Since ubuntu uses gnome, that means gnome will sometimes overwrite xorg.conf.d settings. Gnome uses dconf, which is a "database" full of settings that get applied when gnome starts, user logs-in, etc.
These settings are here so we(users) don't have to create such settings like 90-mouse.conf, and then debug why settings don't work, search for log files. etc. Plus the settings will stay the same once gnome will replace xorg with wayland.

How to:

  • Install dconf-editor sudo apt install dconf-editor
  • Open the dconf-editor and go to org -> gnome -> desktop -> peripherals -> mouse

Here is the setting for accel-profile which tells the computer what kind of mouse acceleration you want. You have these options:

  • default
  • flat ( accelerate the mouse with a constant value, aka disable mouse acceleration )
  • adaptive

To change the accel-profle setting:

  • Click on accel-profle
  • If the option Use default value is set to on turn it off
  • Then change the Custom value to flat if you want no mouse acceleration

The settings will be saved automatically.

My mouse is still to fast! HELP!
You can lower the mouse speed at org/gnome/desktop/peripherals/mouse/speed
The value can be between -1 and 1.

1
  • It doesn't work in Ubuntu 16.04. In 16.04 there are only 3 options under org/gnome/desktop/peripherals/mouse: left-handed, nature-scroll and speed. No accel-profile setting.
    – Instein
    Oct 27, 2021 at 21:49
1

I'm going to post the solution that worked for me : (Create a configuration file)

Firstly, you need to create an empty file named 50-mouse-acceleration.conf under /usr/share/X11/xorg.conf.d/ This can be done by the command :

sudo gedit /usr/share/X11/xorg.conf.d/50-mouse-acceleration.conf

Then, inside this file you copy the code below :

Section "InputClass"
    Identifier "My Mouse"
    MatchIsPointer "yes"
    Option "AccelerationProfile" "-1"
    Option "AccelerationScheme" "none"
    Option "AccelSpeed" "-1"
EndSection

Last thing you need to do, is to replace the the Identifier "My Mouse" with the id of your mouse (in quotes). Type

xinput list

and from the list shown copy the id of the mouse device. You don't have to replace any other line beyond this. E.g if your mouse id is 12, the complete code should be like this :

Section "InputClass"
    Identifier "12"
    MatchIsPointer "yes"
    Option "AccelerationProfile" "-1"
    Option "AccelerationScheme" "none"
    Option "AccelSpeed" "-1"
EndSection

I hope this helps :)

2
1

GNOME manages mouse acceleration by itself. So not only the xorg settings should be adjusted, but also the gnome ones.

$ gsettings set org.gnome.desktop.peripherals.mouse accel-profile flat
$ gsettings set org.gnome.desktop.peripherals.mouse speed 0

And you can enjoy CS:GO now :-)

0

The xset command with the given parameters are an unknown option in my 16.04 In the Ubuntu software shop there is an installer for Keyboard and mouse. This made an easy acceleration change possible.

1
  • Thanks.. this worked for me on Ubuntu 16.04. Description of the program "utilities to configure MATE desktop"
    – VJ-
    Jul 6, 2017 at 18:50

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .