Notes // Fix Arch Linux Logitech MX Master 2S Scroll Speed

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 the Device found: name from Step 4.
  • The hiresscroll: line sets the hires or (high resolution) option to true.

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.

Written by
Published
Email destin{AT}destinmoulton.com if you have any comments or questions.