Skip to main content
Topic: How to scroll without using wheel on mouse? (Read 522 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

How to scroll without using wheel on mouse?

Hello, I've been lurking on this forum for about a month, and I thought it would be the best place to ask about my admittedly very niche problem. Every mouse I've ever bought has had the scroll wheel die first, and my current mouse (ThermalTake Tt eSPORTS Iris Optical RGB) is no exception. However, I refuse to purchase a new mouse this time  :P

Is it possible to emulate a scroll wheel without losing efficiency? s6, xfce.

Using
Code: [Select]
xinput set-button-map
I was able to disable the scroll wheel and remap the forward/back buttons to up and down. However, it is very slow to scroll multiple lines this way, and it doesn't affect chrome or electron-based apps. For some reason they can bypass the button map and I have to use my faulty wheel on Discord for example.

Ideally I would be able to hold down the forward/back buttons on my mouse to have it scroll continuously, but none of my searches returned any results. Has it been managed before? Are there any other methods that are recommended?

Bonus: this is also my only mouse without adjustable sensitivity in the settings, and the xinput transformation matrix has no effect either. Is there any other way to adjust sensitivity without acceleration?


Re: How to scroll without using wheel on mouse?

Reply #2
You might need to look at libinput for sensitivity rather than xinput if you were using that:
https://wayland.freedesktop.org/libinput/doc/latest/device-configuration-via-udev.html
It might take a bit of study and more reading than that link alone to use it, but I've used that approach to adjust touch pad sensitivity. Don't know if it would help but you could try spraying electronic switch contact cleaner into the scroll wheel if you have it, or even any light oil spray like WD40, best test on a surplus mouse first. Ideally take the mouse apart if possible so you can spray only the affected part. This would only help if the operating parts are mechanical and not sealed. If it was an optical sensor on the wheel there might be dirt to clean off.

 

Re: How to scroll without using wheel on mouse?

Reply #3
Quote
You may want to try imwheel.
Thanks! I was increase the amount of scrolling for each side button click with that. I spent a while looking through the man page and trying things out in the config file (several times it made my computer really difficult to use), but I wasn't ever able to repeat key presses while the buttons are held down. But this is good enough for now. Here's my ~/.imwheelrc file in case someone stumbles across this post in the future
Code: [Select]
".*"
Control_L, Up,   Control_L|Button4
Control_L, Down, Control_L|Button5
Shift_L,   Up,   Shift_L|Button4
Shift_L,   Down, Shift_L|Button5
None,      Thumb1, Button5, 4
None,      Thumb2, Button4, 4

Quote
You might need to look at libinput for sensitivity rather than xinput if you were using that
That link is kinda hard for me to understand, but the Arch Wiki page for libinput is listing xinput commands, so I think that was what I was already using when doing my earlier experimentation.
Code: [Select]
~$ xinput list-props 13
Device 'Tt eSPORTS Iris Optical RGB':
Device Enabled (149): 1
Coordinate Transformation Matrix (151): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Natural Scrolling Enabled (278): 0
libinput Natural Scrolling Enabled Default (279): 0
libinput Scroll Methods Available (280): 0, 0, 1
libinput Scroll Method Enabled (281): 0, 0, 0
libinput Scroll Method Enabled Default (282): 0, 0, 0
libinput Button Scrolling Button (283): 2
libinput Button Scrolling Button Default (284): 2
libinput Button Scrolling Button Lock Enabled (285): 0
libinput Button Scrolling Button Lock Enabled Default (286): 0
libinput Middle Emulation Enabled (287): 0
libinput Middle Emulation Enabled Default (288): 0
libinput Rotation Angle (261): 0.000000
libinput Rotation Angle Default (262): 0.000000
libinput Accel Speed (289): -0.600000
libinput Accel Speed Default (290): 0.000000
libinput Accel Profiles Available (291): 1, 1, 1
libinput Accel Profile Enabled (292): 1, 0, 0
libinput Accel Profile Enabled Default (293): 1, 0, 0
libinput Accel Custom Fallback Points (294): <no items>
libinput Accel Custom Fallback Step (295): 0.000000
libinput Accel Custom Motion Points (296): <no items>
libinput Accel Custom Motion Step (297): 0.000000
libinput Accel Custom Scroll Points (298): <no items>
libinput Accel Custom Scroll Step (299): 0.000000
libinput Left Handed Enabled (300): 1
libinput Left Handed Enabled Default (301): 0
libinput Send Events Modes Available (263): 1, 0
libinput Send Events Mode Enabled (264): 0, 0
libinput Send Events Mode Enabled Default (265): 0, 0
Device Node (266): "/dev/input/event13"
Device Product ID (267): 9802, 4119
libinput Drag Lock Buttons (302): <no items>
libinput Horizontal Scroll Enabled (303): 1
libinput Scrolling Pixel Distance (304): 15
libinput Scrolling Pixel Distance Default (305): 15
libinput High Resolution Wheel Scroll Enabled (306): 1
Do any of the libinput options stand out as being "sensitivity"? That matrix is the only one that looks promising to me, but changing it has no effect as I mentioned earlier.

Quote
Ideally take the mouse apart if possible so you can spray only the affected part.
This mouse seems pretty hard to take apart, I can't find any screws or even any places where it was clearly glued.
Quote
If it was an optical sensor on the wheel there might be dirt to clean off.
I blew some compressed air down in there as much I could, and it might've helped, but not enough  :'(

Thanks for the responses!

Re: How to scroll without using wheel on mouse?

Reply #4
This mouse seems pretty hard to take apart, I can't find any screws or even any places where it was clearly glued.
I've encountered mice with a screw(s) under the label with the model, serial number etc. Just feel for a depression.
Others have screws under one or more of the friction pads.
I've fixed both the scroll wheel and left button more than once on my current mouse. Though neither were dead, just erratic.
Scroll wheel needed degunking. Button just needed some wd40.