Jump to content
eac

Scroll wheel too sensitive in Linux

Recommended Posts

In linux, the mouse wheel is SUPER sensitive -- a single button press on the mousewheel will do a page-up / page-down vs. scrolling line by line. Does anyone else have this issue and/or found a workaround? I can't find any settings in xinput that seem to adjust the sensitivity of the scrollwheel.

Share this post


Link to post
Share on other sites

Change the scroll wheel to scroll just one click instead of one page? Can you post your mouse's current configuration?

Share this post


Link to post
Share on other sites
3 hours ago, Damir said:

Change the scroll wheel to scroll just one click instead of one page? Can you post your mouse's current configuration?

It is set to 1 line in the windows driver, and the scrolling works as expected in windows. In linux, other mice scroll properly, just the Z mouse that scrolls page by page.

As far as configuration goes, this is what is exposed:

Device 'Swiftpoint Limited Swiftpoint Z':
	Device Enabled (152):	1
	Coordinate Transformation Matrix (154):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Natural Scrolling Enabled (286):	0
	libinput Natural Scrolling Enabled Default (287):	0
	libinput Scroll Methods Available (288):	0, 0, 1
	libinput Scroll Method Enabled (289):	0, 0, 0
	libinput Scroll Method Enabled Default (290):	0, 0, 0
	libinput Button Scrolling Button (291):	2
	libinput Button Scrolling Button Default (292):	2
	libinput Middle Emulation Enabled (293):	0
	libinput Middle Emulation Enabled Default (294):	0
	libinput Accel Speed (295):	0.000000
	libinput Accel Speed Default (296):	0.000000
	libinput Accel Profiles Available (297):	1, 1
	libinput Accel Profile Enabled (298):	1, 0
	libinput Accel Profile Enabled Default (299):	1, 0
	libinput Left Handed Enabled (300):	0
	libinput Left Handed Enabled Default (301):	0
	libinput Send Events Modes Available (271):	1, 0
	libinput Send Events Mode Enabled (272):	0, 0
	libinput Send Events Mode Enabled Default (273):	0, 0
	Device Node (274):	"/dev/input/event16"
	Device Product ID (275):	8526, 5
	libinput Drag Lock Buttons (302):	<no items>
	libinput Horizontal Scroll Enabled (303):	1

      
Device 'Swiftpoint Limited Swiftpoint Z Consumer Control':
	Device Enabled (152):	1
	Coordinate Transformation Matrix (154):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Natural Scrolling Enabled (286):	0
	libinput Natural Scrolling Enabled Default (287):	0
	libinput Send Events Modes Available (271):	1, 0
	libinput Send Events Mode Enabled (272):	0, 0
	libinput Send Events Mode Enabled Default (273):	0, 0
	Device Node (274):	"/dev/input/event18"
	Device Product ID (275):	8526, 5
	libinput Drag Lock Buttons (302):	<no items>
	libinput Horizontal Scroll Enabled (303):	1

I've tried tweaking some of the settings but I can't find any that make a difference.

Share this post


Link to post
Share on other sites

Have you used "save mappings to permanent memory on mouse", if you haven't  then the mouse is using the default settings that are on the permanent memory as just changing settings in the driver doesn't save them on the mouse so those could be used without the driver present.

Share this post


Link to post
Share on other sites

Dug in a bit more. Turns out the axis values for the swiftpoint Z are far too high in linux:

 event16  POINTER_AXIS      +4.93s	vert 1800.00* horiz 0.00 (wheel)
 event16  POINTER_AXIS      +4.96s	vert 1800.00* horiz 0.00 (wheel)

Note the 1800, vs:

 event26  POINTER_AXIS      +4.12s	vert 15.00* horiz 0.00 (wheel)
 event26  POINTER_AXIS      +4.18s	vert 15.00* horiz 0.00 (wheel)

for a "normal" mouse. Haven't figured out if I can adjust a multiplier or something on this yet.

Share this post


Link to post
Share on other sites
Posted (edited)

Fixed it!

Added the following to /etc/udev/hwdb.d/71-mouse-local.hwdb (the path may change depending on your distro):

mouse:usb:v214Ep0005:name:Swiftpoint Z
  MOUSE_WHEEL_CLICK_ANGLE=30
  MOUSE_WHEEL_CLICK_COUNT=12

Not 100% sure about the values, but they seem to work just fine. Then I ran "udevadm hwdb --update" and replugged the mouse to pick up the config changes (there's probably a way to do that live but I didn't bother looking).

edit: I spoke too soon. Seems like the fix is replugging it in linux; when it comes up on boot it comes up with the too fast scrolls.

Edited by eac

Share this post


Link to post
Share on other sites
Posted (edited)

Sorry for the two-month necro, but this is the first hit on several Google queries relating to the matter, so I'm posting here for maximal visibility into the subject (and eventual solution, ideally).

This issue is shared specifically (and perhaps almost exclusively?) with several Microsoft mice as well, and only when dual booting between Windows and Linux.

We (the Linux community) have been fighting this fight for literally years, and there's ultimately no good, permanent solution outside of a few scripts that work for most such devices, but none (that I've found) for our Z unfortunately. Otherwise, as you concluded, the only solution here is to unplug and replug the mouse in physically.

If you're interested, the most popular scripted solution (for essentially every applicable mouse except ours) is the open source utility, 'resetmsmice':
https://github.com/paulrichards321/resetmsmice

Of course, it won't detect your mouse (and thus won't know to restart it) if you try for yourself, instead error'ing out with:

Checking for X.org compatibility mode on all Microsoft usb mice plugged into the system...
No known X.org problematic mice attached to system.

But in theory we should still be able to apply the same internal fix for own device... we just need someone slightly more savvy than me to take the wheel, lol...

To that end, in the event such a user happens upon this post, somewhere below is the pertinent information you'll need to diagnose (and hopefully resolve) our issue I believe.

Device 'Swiftpoint Limited Swiftpoint Z':
	Device Enabled (153):	1
	Coordinate Transformation Matrix (155):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Natural Scrolling Enabled (287):	0
	libinput Natural Scrolling Enabled Default (288):	0
	libinput Scroll Methods Available (289):	0, 0, 1
	libinput Scroll Method Enabled (290):	0, 0, 0
	libinput Scroll Method Enabled Default (291):	0, 0, 0
	libinput Button Scrolling Button (292):	2
	libinput Button Scrolling Button Default (293):	2
	libinput Middle Emulation Enabled (294):	0
	libinput Middle Emulation Enabled Default (295):	0
	libinput Accel Speed (296):	0.000000
	libinput Accel Speed Default (297):	0.000000
	libinput Accel Profiles Available (298):	1, 1
	libinput Accel Profile Enabled (299):	1, 0
	libinput Accel Profile Enabled Default (300):	1, 0
	libinput Left Handed Enabled (301):	0
	libinput Left Handed Enabled Default (302):	0
	libinput Send Events Modes Available (272):	1, 0
	libinput Send Events Mode Enabled (273):	0, 0
	libinput Send Events Mode Enabled Default (274):	0, 0
	Device Node (275):	"/dev/input/event4"
	Device Product ID (276):	8526, 5
	libinput Drag Lock Buttons (303):	<no items>
	libinput Horizontal Scroll Enabled (304):	1
Device 'Swiftpoint Limited Swiftpoint Z':
	Device Enabled (153):	1
	Coordinate Transformation Matrix (155):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Natural Scrolling Enabled (287):	0
	libinput Natural Scrolling Enabled Default (288):	0
	libinput Send Events Modes Available (272):	1, 0
	libinput Send Events Mode Enabled (273):	0, 0
	libinput Send Events Mode Enabled Default (274):	0, 0
	Device Node (275):	"/dev/input/event5"
	Device Product ID (276):	8526, 5
	libinput Drag Lock Buttons (303):	<no items>
	libinput Horizontal Scroll Enabled (304):	1


Alternatively, could we maybe get a means of mapping a 'mouse restart' command to our Z? For we desktop users, that'd at least be a tiny bit more convenient than walking/crawling to the back of our towers just to unplug and replug the mouse after every single Linux restart.

Either way, I hope this helps! Good luck and Godspeed, Linux users!
 

Edited by Skip
Corrected links.

Share this post


Link to post
Share on other sites

Oh my, this is really annoying. I'm sorry to say but I'm back to Logitech after I switched over to Ubuntu. Damn I miss "the Z" but it's just not usable due this scroll wheel problem.

Any news how to fix this problem ?

Share this post


Link to post
Share on other sites
5 minutes ago, Raikoke said:

Oh my, this is really annoying. I'm sorry to say but I'm back to Logitech after I switched over to Ubuntu. Damn I miss "the Z" but it's just not usable due this scroll wheel problem.

Any news how to fix this problem ?

BWT, thank you  @Skip for your detailed post, I'm using Ubuntu 18.04 & Windows 10 (1903) dual boot

  • Thanks 1

Share this post


Link to post
Share on other sites

@Raikoke and anyone else that might still be looking for additional workarounds, I've worked out a relatively straight-forward fix for reducing the Z's scroll speed specifically in Firefox.

Just to reiterate: This will NOT address the actual scroll speed issue OS-wide. You're still going to painfully struggle trying to scroll through your terminal windows or adjust your volume with the mouse wheel, etc.

SHORT VERSION
Firefox > about:config
mousewheel.min_line_scroll_amount = 1
general.smoothScroll.mouseWheel.durationMinMS = 400
general.smoothScroll.mouseWheel.durationMaxMS = 500

If you understand everything so far, you're set; no need to read any further. (Also: Yay! Life in Firefox with the Z is reasonable again!)


VERBOSE VERSION
Open a new tab in Firefox, type "about:config" into the URL and press [Enter].
Click the "I accept the risk!" button to continue into Firefox's hidden configuration settings.
Use the "Search:" box at the top of this settings page to search for the following term:
"mousewheel.min_line_scroll_amount" (without the quotes).
Double-click the only result that shows up and change its value to "1" (without the quotes).
Clear the text from the "Search:" box and replace it with "general.smoothScroll.mouseWheel.durationMinMS" (without the quotes).
Double-click the only result that shows up and change its value to "400" (without the quotes).
Clear the text from the "Search:" box and replace it with "general.smoothScroll.mouseWheel.durationMaxMS" (without the quotes).
Double-click the only result that shows up and change its value to "500" (without the quotes).

Note that the changes you've made to these settings are automatically saved as soon as you submit their new values, so there's no "Save" or "Ok" button to press after this, and the changes you've made are immediately reflected in all other tabs -- so you can test and/or tweak these updates as you go. Once you're satisfied, you can safely close the about:config tab and consistently enjoy your new mouse on all sites across all your tabs via a near-proper browser experience on Linux; no further action will be required between re-openings or updates of Firefox, etc.

Of course, these are the pertinent settings I'm using to most comfortably scroll through the pages I frequent in Firefox. You're of course encouraged to tweak them to see what values best fit your preferences. If you forget what your default/baseline value was for any of these settings at any point, you can rest easy knowing that you can right-click any of the about:config values we've changed and select "Reset" to reset them back to their original value accordingly.

Also, as a friendly reminder: Updating these settings will reduce your otherwise-ridiculous scroll speeds back to something resembling sanity -- until you *fix* said scrolling by unplugging your mouse from your computer and replugging it back in (which would in itself resolve your scrolling issue, as explained in a previous reply above). If for some reason you disconnect and reconnect your mouse, the suggested Firefox settings above will in turn make your temporarily-fixed scroll speed in Firefox feel incredibly sluggish (as it's no longer compensating for a ludicrous scroll speed, but slowing down a traditional speed instead). In this case, the only reasonable fix would be to restart your computer (to go back to the super fast scroll speed) or "Reset" (using the instructions above) the values of the 3 settings we changed (which will return you to vanilla Firefox scroll speeds... until you restart again, reviving the issue).

Hopefully this helps the tech-savvy and neophytes alike who are still anxiously awaiting a proper Linux resolution...

...Or, y'know, a mapped/mappable means of pseudo-restarting our Z mouse from the mouse itself! (Please @Bryce, tell us it's at least in the realm of feasibility, lol 🙏😅)

Share this post


Link to post
Share on other sites

@Skip Ideally we'll be able to address this issue more directly by having the Z disable smooth scroll automatically when it's no longer connected to Windows. But if that's not feasible a mappable reset output could be a good short-term workaround.

For those of you that primarily use the Z on Linux one option to avoid this issue entirely would be to downgrade your Z's firmware to before it added smooth scroll support.

Unfortunately you would need to roll-back the driver quite far to do this, but version 1.2.48 would work, and you can download it here.

  • Thanks 1

Share this post


Link to post
Share on other sites

@Bryce Awesome! Glad to hear there's an alternative workaround and an awareness for a path forward. Thanks for the quick reply!

Just to clarify, however, I'm not sure that the issue involves smooth scrolling in any way. (It absolutely might, but that's not what I meant to imply above; I just needed to modify Firefox's smooth scrolling settings to accommodate the updated scroll speed.)

The issue we're seeing in Linux is that a single rotational "click"/"notch" of the wheel (the minimum amount you can rotate the wheel for it to register as an action of any kind) translates to roughly 10-15 such rotations of a typical, properly-functioning mouse wheel. In other words, 1 tiny, careful movement of the mouse wheel will scroll from the top of a ~50 line text file to the bottom, or from 1% of our volume bar to 100%, etc.

If there's anything else I can do, try, or provide that might help you in any way, please don't hesitate to let me know.

Thanks again for looking into it! We really appreciate it more than you know! 😙👍

Share this post


Link to post
Share on other sites

@Skip

Sorry for the confusion. By Smooth Scroll I was referring to the Windows specific feature which enables finer scrolling granularity.  (Further details can be found here if you're interested.)

A side effect of this feature is a single "notch" of the scroll wheel will send multiple scroll events to make up for the fact that each scroll event is smaller. This is fine on Windows where it knows how to scale these events, but MacOS and Linux treat them as regular scroll events which massively increases scroll-speed. 

Due to this issue mice with smooth scrolling support have this feature disabled by default and only enable it when they connect to Windows. So it only becomes a problem if one is connected to Windows, then switches to another OS without loosing power/resetting in-between.

  • Thanks 1

Share this post


Link to post
Share on other sites

@Bryce

Ah, I see! Sorry for the late reply, but thanks for the link and clarification!

Is there any chance you've made (or heard of) any progress on this front yet?
 

Quote

Ideally we'll be able to address this issue more directly by having the Z disable smooth scroll automatically when it's no longer connected to Windows. But if that's not feasible a mappable reset output could be a good short-term workaround.


Any update or feedback would be greatly appreciated! Thanks so much! 💗
 

Share this post


Link to post
Share on other sites

@Skip We haven't made any progress on this yet. It's on our list but since this is a relatively niche issue with a known workaround it's not a very high priority.

This could change if the feedback we receive warrants it, but at this stage unfortunately it likely wont be addressed in the near future.

  • Like 1

Share this post


Link to post
Share on other sites

@Bryce No worries; I can appreciate that. Thanks for the transparency and detailed replies as always! We all appreciate it a lot more than you know!

For anyone else dealing with this: I'll report back here if I find any better alternatives for the time being (e.g., an updated 'resetmsmice' or equivalent script to simulate a unplug/replug for our particular device, etc). Likewise, if anyone makes their own solution (or stumbles into someone else's solution), please give us a heads up here accordingly; it'd mean a lot to those of us who struggle with this literally every day!

Thanks again, and best of luck to all!
 

Edited by Skip
formatting

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...