Use logid to enable high resolution scrolling for the Logitech MX Master 2S mouse.
Logitech Master 2S Scroll Speed Issue on Arch Linux
I was super stoked to get my Logitech MX Master 2S mouse today. One of the touted features is the scroll wheel that has two modes: silky smooth hyper-fast mode or the standard "clicky" feel. I plugged it in and was blown away. The hyper-fast scroll was amazing. Pages of text were flying by and a light touch would brake it immediately. My scroll joy didn't last long. I put my computer to sleep while I ate lunch and when I woke it from its slumber the scroll wheel was terrible. The hyper-scroll had turned into a herky-jerky hypo-scroll that felt like something was broken.
Fixing the Scroll Issue on Arch Linux
Windows and Mac users can use the Logitech gui apps to configure their mouse. Arch has the logiops package and a fantastic Arch Wiki page written specifically for the Logitech MX Master mouse. Here are my modified configuration steps including a fix for the sleep issue.
1. Install the logiops
AUR package.
$ sudo paru -Sy logiops
Note: Substitute yay
if you do not have paru
installed.
2. Enable the logid
service.
$ sudo systemctl enable logid
3. Restart the computer.
Per the wiki instructions I tried running the logid
command after starting the logid service using the standard sudo systemctl start logid
command but it gave me an error that no device was found.
4. Get the device name of the mouse.
$ sudo logid -v
[DEBUG] Unsupported device /dev/hidraw4 ignored
[INFO] Detected receiver at /dev/hidraw0
[INFO] Device found: Wireless Mouse MX Master 2S on /dev/hidraw0:1
[DEBUG] /dev/hidraw0:1 remappable buttons:
[DEBUG] CID | reprog? | fn key? | mouse key? | gesture support?
[DEBUG] 0x50 | | | YES |
[DEBUG] 0x51 | | | YES |
[DEBUG] 0x52 | YES | | YES | YES
[DEBUG] 0x53 | YES | | YES | YES
[DEBUG] 0x56 | YES | | YES | YES
[DEBUG] 0xc3 | YES | | YES | YES
[DEBUG] 0xc4 | YES | | YES | YES
[DEBUG] 0xd7 | YES | | | YES
[DEBUG] Unsupported device /dev/hidraw3 ignored
[WARN] Error adding device /dev/hidraw1: std::exception
The second [INFO]
line has the Device found:
identifier.
In this case my mouse is named "Wireless Mouse MX Master 2S".
5. Create a configuration file /etc/logid.cfg
. Use the device name from the prior step as the name:
identifier.
devices: ({
name: "Wireless Mouse MX Master 2S";
hiresscroll: { hires: true; invert: false; target: false; };
})
- Set the
name:
option to theDevice found:
name from Step 4. - The
hiresscroll:
line sets thehires
or (high resolution) option totrue
.
6. Restart the logid
service.
$ sudo systemctl restart logid
Note: Restart the service every time you save/change the /etc/logid.cfg
file.
Issues after Waking from Sleep
After configuring logid
I was still experiencing an issue after waking the computer from sleep: the scroll settings reverted to low resolution.
My solution is to add a system service to restart logid
after waking up.
1. Create a service
file in /etc/systemd/system
.
I named my service /etc/systemd/system/restart_logid_after_sleep.service
.
[Unit]
Description=Restart logid after sleep to reset MX Master mouse settings.
After=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target
[Service]
Type=simple
ExecStart=/bin/systemctl --no-block restart logid
[Install]
WantedBy=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target
2. Enable the new service.
$ sudo systemctl enable restart_logid_after_sleep
Note: Creating a user service will not work because sleep.target
is a system service and is inaccessible at the user service level.