How can I adjust the mouse scroll speed?

  • This question has been asked many times with no answer. I've used my basic Google skills and haven't come across a fix. This is system wide. My mouse simply scrolls too fast.

    I'm new to ubuntu and linux in general. Would switching styles or whatever it is called (Ubuntu, KDE, Xubuntu) help at all? Is there a terminal code I can enter?

    See this question, it appears to have the answer:

    Forum won't let me answer, but the solutions below didn't work for me and I found one that did for my touchpad scroll: simply type 'synclient VertScrollDelta=100' into terminal.

    This solution solved the problem permanently for me:

    I want to know why the `System Settings` does not support making adjustment on the mouse srolling speed.

    This answer works for scroll wheel speed:

    It's reasons like this that Linux is not so popular as a desktop OS.

    Currently libinput is the library used for mouse input and the desktop environments only provide a GUI for changing its settings. The problem is that libinput currently does not support the changing of scroll speed. Thus I created an issue for scroll speed there, which you can support by voting it up:

  • I removed the USB dongle that comes with my wireless mouse and plugged it back and fixed my scrolling speed instantly.

    I don't think this answer deserves the downvotes. It did solve my/the problem (yes, I +1:ed it).

    yes, worked for me as well

    This answer especially applies to a Logitech mouse connected via their Unifying wireless receiver after switching the "smooth scrolling" option in solaar.

    Worked for me too. If my mouse is connected to a USB3 port it is very sensitive, but on a USB2 port everything is good. Thanks.

    I have a sculpt ergonomic desktop(keyboard & mouse) by microsoft. This solution fixed my problems.

    Sculpt ergonomic keyboard and mouse: This fixed it. Seems idiotic, but it worked...

    This solution works for Microsoft Mouse too.

    Just chiming in to say this worked for me. An unsatisfying answer - but it works!

    Found the perfect solution. No more unplug and plug. Use resetmsmice, or the deb package directly.

    Not sure if it's relevant, but any idea WHY this works (happened to work for me too, thanks!)?

    Came to this answer only to find out I have already up-voted it in the past!! :-)

    Wow! weird solution which works

    this solution worked for me like a charm. thanks man.

    Why does this work? I'd hate to wear out my USB receiver by constantly plugging it in and out :(

    Worked for me too...I have the sculpt ergonomic desktop(keyboard & mouse) by Microsoft.

    Why is this so terribly supported in Ubuntu...

    ARE YOU KIDDING ME - this actually helped hahaha. I just removed it and put in the same place. haha thanks!

    Surprisingly enough, this fixed the problem for me!!

    -1 This will NOT work if the _default settings_ of the mouse are the problem, like in so many cases and the situation the OP seems to imply.

    @TedFeng You should post an answer suggesting resetmsmice, is a much better solution then plugging and unplugging the USB after every boot.

    @ArthurNunes I don't have enough score to post an answer. For anyone else who have the problem with microsoft mouse in dual-booting, try resetmsmice, it resets a setting in the mouse through usb communications, which is the root cause of the issue.

    Worked for me; it sucks that this is the right answer. Is there a bug report? I couldn't find one... I have the Microsoft Sculpt Ergonomic.

    It worked perfectly for me. For the record, I have a Microsoft Wireless Mouse 1000.

    worked on my ergo microsoft keyboard/mouse as well

    Worked for me too. Collected props "pre" (misbehaving wheel) and "post" (wheel behaves). Diff shows propery 'Accel Speed' changed from -0.025743 to 0.00, 'Horizonatal Scroll Enabled' from 1 to 0, and property 'Drag Lock Buttons' were removed.

    hahahah can't believe it worked for me too!!! X1 thinkpad with microsoft mouse

    an unbelievable solution, up up up! :)

    That worked for my Microsoft Wireless Mouse 5000 also, interesting solution by the way, thanks!

    This is why I <3 Linux

    This solution worked for me as well. Something appeared to have changed the scroll speed on the mouse (I don't have any DPI settings changed), but unplugging and plugging back in the receiver helped. Logitech MX Master.

    This worked for me with my Microsoft mouse. The issue started for me after I started dual booting into Windows routinely to play a game.

    I'm STUNNED! I've tried fixing my Microsoft Sculpt for many months to no avail. And this fixed it instantly. I suffer no more. I just cannot believe it was that simple.

    This did not suffice for me, the scroll speed persisted (Logitech Performance MX Mouse). However, unplugging, powercycling the mouse and replugging worked and my scroll speed is usable again.

    This worked for my Logitech MX Master, I was struggling with this issue for a year or two. Nothing helped. Then after few months I discovered that unplugging and plugging again Unifiying receiver helps to restore scroll speed. This issue is most annoying shit when browsing webpages and one doesn't know what to do.

  • To change the mouse parameters:

    • list the peripherals, note the good number with the device name of the mouse!

      xinput list
    • list parameters from peripheral number 9

      xinput list-props 9
    • set the acceleration of peripheral 9 to value 3. The higher the value is, the more you divide the acceleration. Acceleration is maximum for a value equal to 1. The "basis" value seems to be 1.7, for me...

      xinput set-prop 9 'Device Accel Constant Deceleration' 3

    To permanently set the change :
    A hidden file in your directory is ".profile" (Ctrl+H to see hidden files) Double click on it and open it. Copy paste the previous command at the end. That's it!

    P.S. to apply the same command for all users you can edit the file /etc/profile (not an hidden file).

    Have fun.

    I tried it and this seems to act just on the cursor speed; it has no effect on the scroll wheel behavior.

    I think you're looking for 'Synaptics Scrolling Distance'. Fwiw.

    I cannot find any props about scrolling, perhaps my mouse doesn't support it? I have 2 mice and none of them have it. One mouse is pretty new though.

    -1 This is about the speed of moving mouse that can changed by default in settings. This is wrong answer to this question! Not about mouse scroll speed.

    @zoomix for what it's worth not all mouses/touchpads are made by synaptics.

    The correct one is 'Evdev Scrolling Distance', but I can't seem to get it to go faster than 1 1 1.

    Also.. what the hell is this nonsense? The whole point of a mouse is to interact with GUIs, and you're telling me nobody has made a GUI for changing the mouse settings?

    For me it was `xinput set-prop 10 'libinput Accel Speed' 1`

  • First check which device is the mouse:

    xinput list

    Now pick the ID of your mouse there, and list its current settings:

    xinput list-props <device-id>

    then change the settings like so where Evdev scrolling distance [vertical] [horizontal] [dial]

    xinput set-prop <device-id> 'Evdev Scrolling Distance' 1 3 5

    where the combination of the last three numbers is mouse-dependent:

    • first number, the direction of scrolling (minus reverse)
    • second number, speed of scrolling somehow
    • third number, speed of scrolling somehow
    • Changing these values to bigger numbers means you scroll slower (AgentME).

    assuming this answer is somewhat correct, I would guess the 3 and 5 are acceleration vs. velocity

    this answer would be better if it provided a command to *get* the settings first, before user decdied to set them

    I don't think this answer is generic - if I do "xinput list-props 10" it says the device is "Sleep button" not the mouse, so check to see what device you're altering...

    As far as I'm aware `Evdev scrolling distance [vertical] [horizontal] [dial]` numbers act as divisors meaning that larger number equal lower distance and negative numbers reverse the direction.

    @LéoLéopoldHertz준영 No need, just wanted to clarify what the values mean. Not enough info for an answer.

    Changing these values to bigger numbers means you scroll slower. If the values are already all set to 1 then there isn't any benefit to touching this setting.

    Is there a reference to the `Evdev scrolling distance` parameter? It could well refer to x,y,z (e.g. 3 dimensional, if your mouse has multiple wheels – like Firefox has it with `mousewheel.default.delta_multiplier_[x|y|z]`. Having such a mouse, I can definitely say modifying the `multiplier_x` adjusted horizontal scrolling speed. Above mentioned setting reports "1 1 1" in my case – so I have no idea how to *increase* the speed of horizontal scrolling system wide if that's a devisor – unless it also accepts decimals (e.g. `0.5`)?

    Changing these numbers has no effect. The default for me is 1 1 1. The only thing I am able to do is when setting the first value to 10, scrolling does not happen.

    I do not have the `Evdev scrolling distance` parameter

  • I have a Logitech PerformanceMouse MX and none of the solutions here worked. The only thing that worked for me was using some parts of this project.

    1. Add this PPA and then install xserver-xorg-input-evdev.
    2. Check out the Solaar project and run rules.d/ It will copy the udev rules to the appropriate location and ask permissions if necessary.
    3. Remove the receiver and plug it back in.
    4. Add yourself to the plugdev group: $ sudo gpasswd -a <your-username plugdev
    5. Log out and log back in.

    Now you can set your scroll-speed with the following xinput commands (source):

    $ xinput set-prop <devnum> "Evdev Scrolling Distance" 8 1 1 # for smooth scroll
    $ xinput set-prop <devnum> "Evdev Scrolling Distance" -8 1 1 # for smooth 'natural' scroll

    Changing the 8 to a lower value increases the sensitivity. Flipping it to negative changes the direction of scroll. Increasing the value decreases sensitivity.

    I also have a Logitech Performance MX - on Ubuntu 16.04 just running `xinput set-prop 9 'Evdev Scrolling Distance' 3 1 1` solved the problem (9 is my ). No need to install anything. Add this to your `.profile` file to apply on login. To get the run `xinput list`.

    How to do it without smooth scroll?

  • I have written a simple script which allows you to find which device has this property ( The script basically iterates over all xinput devices and lists only those which have any property containing scroll).

     xinput list | cut -f2 | cut -f2 -d'=' | xargs -d $'\n' -I'{}' sh -c "xinput list-props '{}' | grep -iq scroll && (echo Listing dev id '{}'; xinput list-props '{}')"
     xinput --set-prop 11 295

    Note, that for example in Firefox you can set in about:config


    Remember to set


    to true.

    Thans for that firefox tip. Because adjusting xinput props to 1 is still super sloppy scroll speed. I set my firefox scroll speed to 100 now! :D

    Firefox was actually where I wanted to set this, so this is the correct answer for me

  • This solution works for me:

    sudo apt-get install imwheel zenity

    Create a bash script and insert this:

    # Version 0.1 Tuesday, 07 May 2013
    # Comments and complaints
    # GUI for mouse wheel speed using imwheel in Gnome
    # imwheel needs to be installed for this script to work
    # sudo apt-get install imwheel
    # Pretty much hard wired to only use a mouse with
    # left, right and wheel in the middle.
    # If you have a mouse with complications or special needs,
    # use the command xev to find what your wheel does.
    ### see if imwheel config exists, if not create it ###
    if [ ! -f ~/.imwheelrc ]
    cat >~/.imwheelrc<<EOF
    None, Up, Button4, 1
    None, Down, Button5, 1
    Control_L, Up, Control_L|Button4
    Control_L, Down, Control_L|Button5
    Shift_L, Up, Shift_L|Button4
    Shift_L, Down, Shift_L|Button5
    CURRENT_VALUE=$(awk -F 'Button4,' '{print $2}' ~/.imwheelrc)
    NEW_VALUE=$(zenity --scale --window-icon=info --ok-label=Apply --title="Wheelies" --text "Mouse wheel speed:" --min-value=1 --max-value=100 --value="$CURRENT_VALUE" --step 1)
    if [ "$NEW_VALUE" == "" ];
    then exit 0
    sed -i "s/\($TARGET_KEY *Button4, *\).*/\1$NEW_VALUE/" ~/.imwheelrc # find the string Button4, and write new value.
    sed -i "s/\($TARGET_KEY *Button5, *\).*/\1$NEW_VALUE/" ~/.imwheelrc # find the string Button5, and write new value.
    cat ~/.imwheelrc
    imwheel -kill

    Now run the script and set your desired mouse wheel speed.

    Thanks to:

    What is Zenity?

    I found my back and forward keys stopped working :O but otherwise nice

    @neverMind9 Zenity is a dialog creation utility. It is used by the script I pasted above in order to create the mouse wheel speed selector.

    Change the last real line of the script to say `imwheel -kill -b "4 5"` and your back/forward mouse buttons will work again.

    this work awesome !!

    I have tried all other solutions, but this is the only thing that has worked!

    But how to make it permanent?

  • Aside from all of these You can use the old good synaptics dirver for this (Yeah I know it is not supported anymore but lets be honest libinput documentation sucks hard).
    If you are on 18.04 or above just install synaptics:

    sudo apt-get install xserver-xorg-input-synaptics

    now go to /usr/share/X11/xorg.conf.d and just edit the file 70-synaptics.conf

    cd /usr/share/X11/xorg.conf.d
    sudo nano 70-synaptics.conf

    find the section Section "InputClass" Identifier "touchpad catchall" then add these options:

    Option "VertScrollDelta" "16"
    Option "HorizScrollDelta" "16"

    The default number is 26 the lower the number it is faster to scroll, the higher it is slower to scroll. Finally it should look like this:

    Section "InputClass"
            Identifier "touchpad catchall"
            Driver "synaptics"
            MatchIsTouchpad "on"
    # This option is recommend on all Linux systems using evdev, but cannot be
    # enabled by default. See the following link for details:
    #       MatchDevicePath "/dev/input/event*"
            Option "VertScrollDelta" "16"
            Option "HorizScrollDelta" "16"

    Save the file and close it (Ctrl + O then Enter then Ctrl + X).

    Log out and back in for the changes to take effect.

    Synaptics driver is a driver with huge options I dont know who in a world has decided to move to the NO OPTION libinput.
    Other options can be found at:

    It's TouchPad scroll speed not mouse scroll speed

  • My problem was slightly different and I'm posting the answer here to assist other users as well. My issue was that the default mouse hardware added by VmWare Fusion or Workstation was not supporting scrolling in Ubuntu and other Linux distros, while the cursor was moving.

    The issue seemed at first to be erratic scrolling, slow scrolling (which lead me here), while in fact, it was a different problem. This thread help me fixed it.

    By moving evdev to a later "init" order, the scrolling came back to act as normal.

    Thanks, but as you are answering a slightly different question, you should have created a new question and answered it yourself. This would be easier to find than through looking at the badly rated answer to a different question.

License under CC-BY-SA with attribution

Content dated before 6/26/2020 9:53 AM