You are not logged in.

#1 2022-12-15 23:41:33

Spide
Member
Registered: 2022-12-15
Posts: 1

REL_WHEEL_HI_RES has some dead-zone. How can I turn it off?

Hi,

I have a mouse (Logitech MX Master 3) with a high res scroll wheel. It works very good, I'm using logid with this config:

evices: ({
  name: "Wireless Mouse MX Master 3";

  // A lower threshold number makes the wheel switch to free-spin mode
  // quicker when scrolling fast.
  smartshift: { on: true; threshold: 10; };

    hiresscroll:
    {
        hires: true;
        invert: false;
        target: true;
        up: {
            mode: "Axis";
            axis: "REL_WHEEL_HI_RES";
            axis_multiplier: 1;
        },
        down: {
            mode: "Axis";
            axis: "REL_WHEEL_HI_RES";
            axis_multiplier: -1;
        },
    };
  // Higher numbers make the mouse more sensitive (cursor moves faster),
  // 4000 max for MX Master 3.
  dpi: 1000;
});

The mouse and driver are sending perfect events. If I inspect them with evtest, it looks ok. But some thing after this is making quirks. There is some half-baked dead-zone inserted. So if I scroll very slow, the dead-zone kicks in or if I start scrolling slow nothing happens and after a few ticks, the app jumps (maybe to catch up the dead-zoned ticks). I don't know if I explained it any good. So I made a screen-record with evtest on the left and my ff-browser on the right. It's nothing Firefox specific, it's the same in vscode, nemo, gnome-terminal etc.

Can you give me a hint, where this quirks may be happen? I just want the input events 1:1 piped to my apps.

https://imgur.com/T3mCn1q

Spide

Offline

#2 2024-04-06 10:55:44

Malvineous
Member
From: Brisbane, Australia
Registered: 2011-02-03
Posts: 193
Website

Re: REL_WHEEL_HI_RES has some dead-zone. How can I turn it off?

Sorry for the necropost but this came up first in my Google search results, so I'm posting the solution here for the next person as it has been bugging me for years.

The problem is with libinput and the way it handles high resolution scrolling events.  By configuring libinput to ignore high resolution scroll events, the problem disappears.  This is documented on the Arch Wiki page for the MX Master in the troubleshooting section.

It's not actually a dead zone, so much as the mouse sends both normal and high resolution scroll events, and libinput processes both of them instead of just processing one or the other, and they seem to conflict.

Getting libinput to ignore the high resolution events also seems to fix the problem where the scroll events get out of sync with the physical wheel clicks so that's nice too.

Offline

Board footer

Powered by FluxBB