Various Logitech mice implement hi-res scrolling. This means instead of having the content move for 3 lines for each scroll movement, you can scroll per-pixel using many more precise scroll events sent by the mouse. This gives a precise and smooth experience while scrolling. The following only works for Xorg using a USB connected receiver.
Enabling the feature
First off, we need to enable this feature. Solaar is able to do so when using the Logitech USB receiver. Install it as follows:
git clone https://github.com/pwr-Solaar/Solaar.git cd Solaar sudo bash -c 'umask 022 ; pip3 install .' sudo cp rules.d/42-logitech-unify-permissions.rules /etc/udev/rules.d/ cp share/autostart/solaar.desktop ~/.config/autostart/
If pip isn’t installed, install it using
sudo apt install -y python3-pip
This will install Solaar, give regular users write access to Logitech HID devices, and ensure Solaar autostarts on login so the feature is enabled at boot.
solaar and enable Wheel Resolution.
Now scrolling will be awfully fast, so we need to tell each scroll event matches 1 pixel instead of the default 15. Horizontal scrolling still uses an ordinary wheel click, so we need to make sure that wheel behaves as before.
Lookup the name of your mouse using
xinput. This will either be
Logitech MX Master 3 for a USB connected MX Master 3 or
MX Master 3 Mouse if the same device is connected through bluetooth.
Now create a new udev hwdb file:
sudo nano /etc/udev/hwdb.d/71-logitech-mouse.hwdb, and enter the following information:
mouse:*:name:*MX Master 3*: MOUSE_WHEEL_CLICK_ANGLE=1 MOUSE_WHEEL_CLICK_COUNT=360 MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL=26 MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL=14
This will match an MX Master 3 mouse on either protocol.
Now reload these settings using the following commands to give them a try.
sudo systemd-hwdb update sudo udevadm trigger /dev/input/event*
If the settings seem to have no effect, make sure the device name in
Enjoy your new smooth scrolling!
Scrolling in a Windows 10 guest in Virtualbox behaves strangely now. Not sure how to fix that yet.