19

So, I am changing the scroll speed in Ubuntu using this answer:

Change mouse wheel scroll speed in Chrome on 12.04 (edit starter bar commandline)

Exec=/opt/google/chrome/google-chrome --scroll-pixels=150 %U

It works, but every time Chrome updates I need to do it again, is there any way I can permanently fix this issue?

6
  • Maybe use an extension? Feb 12, 2013 at 20:50
  • I've opened a ticket on chrome bug tracker, join it to support the bug code.google.com/p/chromium/issues/detail?id=521211
    – yanpas
    Oct 5, 2015 at 21:36
  • You can set permissions to the desktop file to read-only. Aug 28, 2018 at 6:28
  • @MichalPrzybylowicz, that doesn't stop people from launching chrome without the parameter via terminal or Alt+F2
    – Algoman
    Nov 3, 2019 at 12:03
  • 1
    Note: the --scroll-pixels flag is gone since 2013. See issue #154776
    – rustyx
    May 9, 2022 at 14:52

5 Answers 5

19

How to permanently fix scroll speed in Chrome, Sublime Text, Foxit PDF reader, and any other application you see fit

New answer:

Tested 1 June 2023 on a brand new Ubuntu 22.04 install:

First off, change your Window manager to use X11 instead of Wayland. In short, log out, click your name, click the gear in the bottom-right, choose the non-Wayland window manager option. For details and screenshots, see my other answer here: Wayland window manager causes my computer to stay on a black/blank screen.

Then, run these commands in a terminal:

# 1. Install the imwheel dependency
sudo apt update
sudo apt install imwheel

# 2. Install my configuration file

# Get my whole repo, and symlink the .imwheelrc config
# file to your home dir
git clone https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles.git
cd eRCaGuy_dotfiles/home
ln -si "${PWD}/.imwheelrc" ~

# 3. Get my touchpad toggle script too
mkdir -p ~/bin
cd ../useful_scripts
ln -si "${PWD}/touchpad_toggle.sh" ~/bin/gs_touchpad_toggle
# re-source your ~/.profile bash profile to automatically add ~/bin to your PATH
. ~/.profile

# 4. test it
# Note: if the imwheel mouse scroll speed settings don't properly toggle, first
# log out of Ubuntu and log back in, or reboot, and they should work now.
gs_touchpad_toggle  # toggle touchpad off, and imwheel on
gs_touchpad_toggle  # toggle touchpad back on again, and imwheel back off

Now follow my instructions (originally from the top of the touchpad_toggle.sh file) to disable the touchpad at boot, and to add the Ctrl + Alt + P shortcut to toggle the touchpad on and off:

  1. Create a custom keyboard shortcut to associate Ctrl + Alt + P with the touchpad toggle script.
    1. In Ubuntu 22.04, for instance, adding custom keyboard shortcuts is found in Settings --> Keyboard --> "Keyboard Shortcuts" section at the bottom --> "View and Customize Shortcuts" --> "Custom Shortcuts" at the bottom --> click "Add Shortcut". Name it "Touchpad Toggle", give it the command "gs_touchpad_toggle", and associate it with the Ctrl + Alt + P keyboard shortcut. Click the "Add" button when done.
      1. Test this shortcut now to ensure it works! If it doesn't work, log out of Ubuntu and log back in, or reboot, then test the shortcut again and it should now work.
  2. Edit the Startup Applications GUI tool to add a startup call to toggle the touchpad OFF with every boot: press Windows (Super) key --> search for "Startup Applications", and open it --> click "Add" to create a new entry --> Name it "disable touchpad (Ctrl + Alt + P)", enter gs_touchpad_toggle --off for the "Command", and "found in ~/bin" for the "Comment." Click "Add" to save this new entry, then "Close".
  3. Done!
    1. Your Touchpad and Touchscreen will automatically become DISABLED at every boot!
    2. To toggle it on/off manually, use the Ctrl + Alt + P shortcut you set up.
    3. This is very useful to quickly swap between using an external mouse vs the built-in touchpad or touchscreen, and it solves the mouse wheel scroll speed simultaneously too.
    4. The reason we need imwheel to be disabled whenever the touchpad is enabled is because it interferes with the scrolling ability of the touchpad otherwise, breaking two-finger touchpad scrolling. So, the idea is that when the touchpad is disabled, you should use your external mouse, and its scroll wheel should work well, and when the touchpad is enabled, you should use your touchpad, and two-finger touchpad scrolling should work well.

Original answer:

(Try this to gain more insight, or if you need to try to manually fix things if the above steps don't work).

Here is a solution which works perfectly (tested recently in Ubuntu 14.04, 18.04, and 20.04):

sudo apt update
sudo apt install imwheel
gedit ~/.imwheelrc

Copy and paste the following into the newly-created .imwheelrc file (that you just made in your home directory via the gedit command above):

".*-chrome*"
None,      Up,   Button4, 3
None,      Down, Button5, 3
Control_L, Up,   Control_L|Button4
Control_L, Down, Control_L|Button5
Shift_L,   Up,   Shift_L|Button4
Shift_L,   Down, Shift_L|Button5

3 is the "scroll speed multiplier." Use a larger number for faster scrolling, or a smaller number for slower scrolling. The ".*-chrome*" part says to apply these scroll wheel speed increase changes ONLY to chrome.

Run imwheel -b "4 5" to test your settings. When done testing, run killall imwheel to kill it, then make your edits to .imwheelrc, as desired, and run imwheel -b "4 5" again for more testing. Be sure to fully close and re-open Chrome each time you restart imwheel too, to ensure its new settings take effect. This must be done by right-clicking the little Chrome icon in the top-right of your desktop pane and going to "Exit".

Also keep in mind that if you are using a cheap mouse, your scroll wheel decoder may be lousy and miss encoder counts when moving the wheel fast. Therefore, in such a case, move the wheel at a reduced speed when testing the effect of imwheel, so that your mouse doesn't miss encoder counts on the scroll wheel, making you think imwheel isn't working right when it's really just your cheap hardware's problem.

Add imwheel -b "4 5" to Ubuntu's "Startup Applications" to get it to run every time the computer starts.

As Steven C. Howell says here:

Note that using the option -b "4 5" restricts imwheel to only affect the scroll wheel, discussed here.

Another answer by "tvn" here: https://askubuntu.com/a/304653/327339.
More answers here: Increase mouse wheel scroll speed.

Reference notes:

I am not the original author of the answers linked-to above, rather, user "tvn" and others are, although tvn's answer is lacking in that it replaces mouse scroll wheel movements with multiple arrow-key Arrow Up and Arrow Down key presses, which means you have to click in a window for it to take effect, and some things like the browser-based Jupyter Notebook Python programming environment scroll horribly like this! Therefore, Steven C. Howell gave an improved answer which keeps the scroll wheel mapping to the scroll wheel, instead of to keyboard up and down keys, but his answer is lacking in that it applies this new scroll wheel scaling to everything on your computer, so I just modified this answer 27 Aug. 2018 to reflect Steven Howell's answer, but with the addition of adding ".*-chrome*" to the top of the ~/.imwheelrc file so that these new scroll setting apply only to your Chrome browser, which is really what I want. Note also, I have made several significant and important edits and contributions to tvn's answer linked to above, but now I think this answer here is much better, and it's deviated too much from tvn's answer to even attempt to edit his answer further.

Tested in Ubuntu 14.04 LTS.

Update 3 Mar. 2019: tested in Ubuntu 18.04 LTS as well, and it seems the effect takes place immediately in Chrome now each time you run killall imwheel and then imwheel -b "4 5" to test new settings.

Help, my touchpad/trackpad is glitchy when scrolling!

  • This section added 22 June 2019:

Depending on your computer and hardware, the above settings may work best with a mouse with a scroll wheel. On a track pad (again, this may or may not apply to you or your computer) it may make the result very glitchy when trying to do two-finger scrolling on the touch pad. I have a shortcut key (Ctrl + Alt + P) set up to run a script which enables/disables my track pad so I don't bump it while typing and using a mouse, yet so I can still easily enable it for when I don't have a mouse and/or someone else who loves touch pads wants to use my computer. To fix the glitchy scrolling caused by imwheel when using the touchpad, I've just added the following to my script:

When the touchpad is disabled, enable imwheel so my mouse scroll wheel will work well:

imwheel -b "4 5"

When the touchpad is enabled, disable imwheel so my touchpad two-finger scrolling will work well and not be glitchy:

killall imwheel

Doing the above is especially important for my HP Spectre x360 Ultrabook (Model 13-4193nr, and running Ubuntu 18.04), which otherwise has horribly glitchy two-finger touchpad scrolling when imwheel is enabled.

Here is my full touchpad toggle script with those 2 imwheel lines added as described just above:

File "~/bin/toggle_touchpad":
(I keep the latest version updated here: eRCaGuy_dotfiles/.../touchpad_toggle.sh).

#!/bin/bash

# GS_toggle_touchpad.sh
# - toggle the touchpad on and off

# Gabriel Staples
# Written: 2 Apr. 2018 
# Updated: 12 Sept. 2019 

# References:
# - https://askubuntu.com/a/874865/327339
# - https://askubuntu.com/questions/844151/enable-disable-touchpad/1109515#1109515

# Search for id number of "TouchPad" OR "Touchpad" in `xinput` list; manually type `xinput` to see all your devices
read TouchPadDeviceId <<< $( xinput | sed -nre '/TouchPad|Touchpad/s/.*id=([0-9]*).*/\1/p' ) 

state=$( xinput list-props "$TouchPadDeviceId" | grep "Device Enabled" | grep -o "[01]$" )

echo "TouchPadDeviceId = $TouchPadDeviceId"
echo "state = $state"

if [ "$state" -eq '1' ];then
    xinput --disable "$TouchPadDeviceId"
    zenity --info --text "Touchpad DISABLED" --timeout=2
    imwheel -b "4 5"
else
    xinput --enable "$TouchPadDeviceId"
    zenity --info --text "Touchpad ENABLED" --timeout=2
    killall imwheel
fi

Touchpad toggle script source: Enable/disable touchpad

Now just run toggle_touchpad from the command line, or associate it with a keyboard shortcut like Ctrl + Alt + P like I have.

References:

  1. Get the latest version of this script from my repo here! eRCaGuy_dotfiles...touchpad_toggle.sh
  2. Enable/disable touchpad
  3. For new entries to fix scroll speed for Slack and Sublime Text 3 as well, see my latest ~/.imwheelrc file in my project here, and see also my new answer here answer: How do I change the mouse wheel scroll speed in Sublime Text 3?.
  4. My answer on disabling the trackpad in Ubuntu 22.04: How to enable/disable the touchpad in Ubuntu 22.04 from the command-line

Known bugs/issues:

  • [AMAZON PLEASE FIX THIS!] Amazon designed their website with your discomfort in mind, and their website is extremely slow and glitchy when using the above fix. I haven't noticed a single issue with this fix except on Amazon.com. So, when using Amazon, you might want to just use Firefox, or temporarily disable imwheel with the Ctrl + Alt + P shortcut I helped you set up above.
    • Amazon, why are you so lousy?
    • Note: the behavior is that after scrolling with the mouse wheel on Amazon.com, while imwheel is enabled, you may see:
      1. you cannot click on any links for a few seconds after you stop scrolling
      2. images take a long time to load
      3. CPU usage on Amazon webpages is extremely high. See the Chrome Task Manager to see tabs or pages using lots of CPU time. Open the Chrome Task Manager with Shift + Esc, or by going to the 3 dots in the top-right of Chrome --> "More tools" --> "Task manager".
10
  • imwheel emulates multiple scroll messages. But that totally breaks scrolling through tabs. Now I can't scroll to any tab, I scroll through 4 tabs at a time.
    – Trevor
    Jul 16, 2020 at 0:34
  • This is true. For fine-tuned vertical scrolling, I use the Up and Down arrow keys. And for changing tabs, I use Ctrl + PageUp and Ctrl + PageDown. The benefit I get with the improved mouse scrolling overall is worth the tradeoff and cost I think. Jul 16, 2020 at 3:02
  • Hopefully Chrome gives us some scroll speed/resolution/distance settings in the future, but for now, this is what works best for me by far. You might consider making requests through Google to add scroll settings into Chrome, though, so we wouldn't need to hack it anymore. Jul 16, 2020 at 3:02
  • @Trevor, I just found another super simple fix: since I'm applying the imwheel increased scroll speed to Chrome only, simply removing focus from the Chrome window and then hovering over the tabs and using the mouse scroll wheel works too. This is easy if you have two monitors: just click on a window on the other monitor, then when you hover over the Chrome tabs & scroll, since the chrome window isn't in focus, it applies the normal 1-tab per tick scroll. Once you click on the Chrome window, it gets focus, & now you'll get the imwheel-adjusted increased scroll, skipping some tabs as you scroll. Aug 7, 2020 at 18:29
  • 1
    Works great for legacy systems running X11 but nothing modern running Wayland
    – Scott P.
    Jan 22, 2021 at 3:45
5

unfortunately this function is deprecated and removed from Chrome and Chromium. It is not working anymore with the latest versions of Chrome.

https://code.google.com/p/chromium/issues/detail?id=154776

But you can use this quite cool plugin to speed up your scroll speed in Chrome on Linux.

https://chrome.google.com/webstore/detail/chromium-wheel-smooth-scr/khpcanbeojalbkpgpmjpdkjnkfcgfkhb

2
  • 1
    The performance of the plugin is not so good. The speed is erratic.
    – Casper
    Oct 6, 2016 at 7:28
  • 1
    Try the Smooth Scroll extension, it should work better.
    – rustyx
    Jan 29, 2022 at 23:04
0

Try this alternative https://chrome.google.com/webstore/detail/gestures-for-google-chrom/jpkfjicglakibpenojifdiepckckakgk?utm_source=chrome-app-launcher-info-dialog. It has better performance than Chromium Wheel Smooth Scroller

2
  • This has been fixed in chrome for a while now Dec 4, 2016 at 18:38
  • @get-off-my-lawn could you provide better alternative?
    – ipeacocks
    Dec 4, 2016 at 20:17
0

I've created a simple chrome extension called Scroll Speed in which you can set the scroll factor.

Can be found here: https://chrome.google.com/webstore/detail/scroll-speed/mfmhdfkinffhnfhaalnabffcfjgcmdhl

It has much better performance than the "smooth scroll" extensions I've tried to fix this problem.

0

After trying for several different plugins to get around this issue with linux chrome extension: AutoScroll, which does not solve the speed issue but offers a way to use the middle key to increase the scrolling speed while preserving a smooth experience.

You must log in to answer this question.

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