libinput scroll fix for MX Master 3
libinput
1.19 changed scrolling behavior such that it broke my mouse, MX Master 3, and other models that have a built-in support for high resolution scrolling.
It seems each vendor did hi-res scrolling differently, so it might work right for some other mice.
The way this bug manifests varies, here are some examples:
- very slow scrolling in a browser
- too fast tab switching by wheel
- Okular in continuous mode lost the ability to flip through pages by the wheel. I thought it’s actually an Okular bug, but it disappeared after applying this work-around.
I don’t think there was any need to fix scroling, it worked fine, same as I don’t think Inkscape needed a UI rewrite that made it lose features, and Gimp didn’t need new grayscale icons that are harder to use (luckily can be turned off).
The libinput bug is tracked e.g. in issue 675 on the freedesktop GitLab.
How to disable “high-resolution scrolling”
Here is a fix that works for me, both on Arch Linux and on OpenSuSE Tumbleweed as of writing this. I copied this from somewhere in the gitlab, or stack overflow.
Create file /etc/libinput/local-overrides.quirks
with this content:
[Logitech MX Master 3]
MatchVendor=0x46D
MatchProduct=0x4082
ModelInvertHorizontalScrolling=1
AttrEventCodeDisable=REL_WHEEL_HI_RES;REL_HWHEEL_HI_RES;
# MX Master 3 has a different PID on bluetooth
[Logitech MX Master 3]
MatchVendor=0x46D
MatchProduct=0xB023
ModelInvertHorizontalScrolling=1
AttrEventCodeDisable=REL_WHEEL_HI_RES;REL_HWHEEL_HI_RES;
Reboot to apply. Logging out might be enough as well.
Slow mouse after resume
The mouse is sometimes very slow and acts weird after resume from sleep. I don’t know what causes that, but what works is to turn it off and on using the hardware switch on the bottom.