DEV Community

Cover image for Ubuntu 20.04 mouse scroll wheel speed
Bavouzet Benoît
Bavouzet Benoît

Posted on • Updated on

Ubuntu 20.04 mouse scroll wheel speed

Ubuntu 20.04 mouse scroll wheel speed


I had a very slow scroll speed until I found that.

Install and run

  1. You have to install imwhell with :

    sudo apt install imwheel
    
  2. And download this bash script on http://www.nicknorton.net (thanks to him)
    You can type, as @victoor say in comments :

    You can just do bash <(curl -s http://www.nicknorton.net/mousewheel.sh) instead of copy the script manually and changing permissions. :)

    #!/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
    
  3. Then set up the .sh file to executable with :

    chmod +x mousewheel.sh
    
  4. And then run script with :

    ./mousewheel.sh
    
  5. And set your mouse wheel speed in the popup by clicking on apply button. (my setting is 7) Re-run script for change.

  6. Finally add imwheel in ubuntu startup application.

If you have troubleshooting with previous and next mouse buttons :

  • Add -b "4 5" to imwhell :
imwheel -b "4 5"
Enter fullscreen mode Exit fullscreen mode

You can found others details here for setting speed by app :

Or in the man page : man imwheel

Image : Pexels

Sorry, it's my first post.
Have a nice day !

Latest comments (63)

Collapse
 
iidelta profile image
IIDelta

Hey so I installed this, and ran it a few times, now my scroll speed is very fast with no way to slow it down again?

Collapse
 
jawad5311 profile image
Jawad Mehmood

Whenever I restart my os the mouse speed get's back to 0 automatically. Then I have to do set it again manually using the mentioned procedure. Can you help?
OS: Ubuntu 20.04.4 LTS

Collapse
 
brownd profile image
Daniel Brown

Your script doesn't work for me.

Here are my revised lines that made the script work for me (line numbers included):

29  CURRENT_VALUE=$(awk -F 'Button4,' '{print $2}' ~/.imwheelrc | grep -Eo [0-9]+)
31  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)
Enter fullscreen mode Exit fullscreen mode

FYI the changes are: added grep to return the numbers only and put an equals sign in the --text option for zenity.

Collapse
 
tancetin profile image
tancetin

Thanks.

Collapse
 
codemaoz profile image
Manuel

=D Thanks @bavouzet

Collapse
 
skogrv profile image
skogrv

Does someone know how to make these settings persistent, so it can survive reboot?

Collapse
 
bbavouzet profile image
Bavouzet Benoît • Edited

Look here wiki.archlinux.org/index.php/IMWheel
as jon sivku say
😉

Collapse
 
skogrv profile image
skogrv

thanks, did that, works like a charm

Collapse
 
deiiv profile image
Deiiv

I had an issue with this script disabling my mouses back/forward buttons. To fix, add the following to the last line of the script: imwheel -kill -b "4 5"

Collapse
 
tanveer392 profile image
Tanveer392

Why I need to fix this every time I turn on my computer?

Collapse
 
jonzivku profile image
jon zivku

Here's an article that explains how to turn this action into a startup script wiki.archlinux.org/index.php/IMWheel

Collapse
 
olivaresandres profile image
Andres Olivares

Thank's work fine in ubuntu 20.04

Collapse
 
albertzeyer profile image
Albert Zeyer

A couple of other options are listed here: askubuntu.com/questions/285689/inc...

I implemented an own simple Python script which you can simply run in the background, which implements mouse scroll wheel acceleration: github.com/albertz/mouse-scroll-wh...

Collapse
 
zenbeni profile image
Benjamin Houdu

Best tutorial on the subject so far. Quick and efficient, thank you!

Collapse
 
bbavouzet profile image
Bavouzet Benoît

Thank you for your comment 😊

Collapse
 
mohamedlazybob profile image
MOHAMED ZABOUB

Thank you man, it's working.
you can just do this to download the file :
~> curl nicknorton.net/mousewheel.sh -o mousewheel.sh

Collapse
 
bbavouzet profile image
Bavouzet Benoît

Ok, thank you 😉

Collapse
 
tamalban profile image
tamalban

If I try to run the script, it says "Value out of range.".
If I run "bash <(curl -s nicknorton.net/mousewheel.sh)" as superuser then I see the windows to adjust the speed and it works fine.
Adding it to the startup doesn't help... each time I have to run it as root.
What am I doing wrong?
Using this on Kubuntu 20.04.1 LTS and Thinkpad L380

Collapse
 
tamalban profile image
tamalban

nevermind, deleting ~/.imwheelrc and re-running the script fixed it.

Collapse
 
bbavouzet profile image
Bavouzet Benoît

Ok 👍😊

Collapse
 
victoor profile image
Víctor Falcón

You can just do bash <(curl -s http://www.nicknorton.net/mousewheel.sh) instead of copy the script manually and changing permissions. :)

Collapse
 
bbavouzet profile image
Bavouzet Benoît

Ok, good tip ! I will add this to post ;)
Many thanks !

Collapse
 
richtone profile image
Richard Turza

Hey, is it possible to adjust the script so that touchpad scrolling speed is not affected? Touchpad speed was just right, I only need to adjust mouse scrolling speed. Thanks!

Collapse
 
bbavouzet profile image
Bavouzet Benoît

Hey, I don't know... I'm not the script creator.
Instead of put the script in starts app, try to run it manualy when you are using mouse. Too, you can try to have two settings files.
If you found, say it to me,
Have a nice day