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?

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

  • 39
    I don't think this answer deserves the downvotes. It did solve my/the problem (yes, I +1:ed it). – dbm Nov 11 '13 at 13:17
  • 12
    yes, worked for me as well – binaryguy Apr 8 '14 at 12:41
  • 5
    This answer especially applies to a Logitech mouse connected via their Unifying wireless receiver after switching the "smooth scrolling" option in solaar. – James Caccese May 1 '14 at 4:10
  • 16
    I have a sculpt ergonomic desktop(keyboard & mouse) by microsoft. This solution fixed my problems. – Abhishek Anand Aug 26 '14 at 19:09
  • 34
    This solution works for Microsoft Mouse too. – Quazi Irfan Jun 25 '15 at 20:32

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.

  • 27
    I tried it and this seems to act just on the cursor speed; it has no effect on the scroll wheel behavior. – AndreasT Jun 25 '13 at 20:06
  • 2
    I think you're looking for 'Synaptics Scrolling Distance'. Fwiw. – zoomix Oct 11 '13 at 20:49
  • 11
    -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. – Léo Léopold Hertz 준영 Dec 13 '15 at 19:22
  • 5
    The correct one is 'Evdev Scrolling Distance', but I can't seem to get it to go faster than 1 1 1. – Timmmm Apr 4 '16 at 18:24
  • 7
    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? – x0a Aug 9 '17 at 12:14

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/install.sh. 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.

  • 4
    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 <devnum>). No need to install anything. Add this to your .profile file to apply on login. To get the <devnum> run xinput list. – lenooh Nov 28 '16 at 10:20
  • How to do it without smooth scroll? – Ferrybig Sep 23 at 16:54

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 – Alexander Mills Dec 3 '16 at 2:32
  • 5
    this answer would be better if it provided a command to get the settings first, before user decdied to set them – Alexander Mills Dec 3 '16 at 2:33
  • 1
    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... – Alexander Mills Dec 3 '16 at 3:11
  • 1
    @LéoLéopoldHertz준영 No need, just wanted to clarify what the values mean. Not enough info for an answer. – Rtsne42 Mar 16 '17 at 17:58
  • 4
    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. – Macil Mar 27 '17 at 2:12

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

mousewheel.system_scroll_override_on_root_content.vertical.factor

Remember to set

mousewheel.system_scroll_override_on_root_content.enabled

to true.

  • 2
    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 – Ansjovis86 Apr 7 '17 at 21:37
  • 2
    Firefox was actually where I wanted to set this, so this is the correct answer for me – Amit G Apr 9 '17 at 21:16

This solution works for me:

sudo apt-get install imwheel zenity

Create a bash script and insert this:

#!/bin/bash
# Version 0.1 Tuesday, 07 May 2013
# Comments and complaints http://www.nicknorton.net
# 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 ]
then

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
EOF

fi
##########################################################

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
fi

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

# END OF SCRIPT FILE

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

Thanks to: http://www.nicknorton.net/?q=node/10

  • What is Zenity? – neverMind9 May 3 at 13:16
  • 1
    I found my back and forward keys stopped working :O but otherwise nice – Jamie Hutber May 4 at 9:57
  • @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. – duli May 25 at 2:13
  • Change the last real line of the script to say imwheel -kill -b "4 5" and your back/forward mouse buttons will work again. – SoaperGEM 2 days ago

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:
# http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html
#       MatchDevicePath "/dev/input/event*"
        Option "VertScrollDelta" "16"
        Option "HorizScrollDelta" "16"
EndSection

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:
https://www.x.org/archive/X11R7.5/doc/man/man4/synaptics.4.html

protected by Community Dec 5 '13 at 15:43

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.