PixlOne / logiops

An unofficial userspace driver for HID++ Logitech devices
GNU General Public License v3.0
3.43k stars 272 forks source link

always scroll up with version 0.3 #370

Open LeoDT opened 1 year ago

LeoDT commented 1 year ago

it works well in 0.2, but after upgrading to 0.3, the scrolling is always up, can not scroll down.

config file:

devices: (
{
    name: "Wireless Mobile Mouse MX Anywhere 2S";
    smartshift:
    {
        on: true;
        threshold: 30;
    };
    hiresscroll:
    {
        hires: true;
        invert: false;
        target: true;
        up: {
            mode: "Axis";
            axis: "REL_WHEEL_HI_RES";
            axis_multiplier: 2;
        };
        down: {
            mode: "Axis";
            axis: "REL_WHEEL_HI_RES";
            axis_multiplier: -2;
        };
    };
    dpi: 1500;
    buttons: (
        {
            cid: 0x5b;
            action = { type: "Keypress"; keys: ["BTN_SIDE"]; };
        },
        {
            cid: 0x5d;
            action = { type: "Keypress"; keys: ["BTN_EXTRA"]; };
        },
        {
            cid: 0x53;
            action = { type: "Keypress"; keys: ["BTN_MIDDLE"]; };
        }
    );
}
);
bittamer commented 1 year ago

I'm having the same problem on Arch Linux. Here's the config file:

  name: "MX Anywhere 3";

  smartshift: {
    on: true;
    threshold: 15;
  };

  hiresscroll: {
    hires: true;
    invert: true;
    target: true;
       up: {
            mode: "Axis";
            axis: "REL_WHEEL_HI_RES";
            axis_multiplier: 1;
        },
        down: {
            mode: "Axis";
            axis: "REL_WHEEL_HI_RES";
            axis_multiplier: -1;
        },
  };

  dpi: 1000; // max=4000

    buttons: (
        {
            cid: 0x52;
            action =
            {
                type: "Gestures";
                gestures: (
                    {
                        direction: "Left";
                        mode: "OnInterval";
            interval: 10;
                        action =
                        {
                            type: "Keypress";
                            keys: ["KEY_VOLUMEDOWN"];
                        };
                    },
                    {
                        direction: "Right";
                        mode: "OnInterval";
            interval: 10;
                        action =
                        {
                            type: "Keypress";
                            keys: ["KEY_VOLUMEUP"];
                        };
                    },
                    {
                        direction: "None"
                        mode: "OnRelease";
                        action =
                        {
                type: "Keypress";
                keys: ["BTN_MIDDLE"];
                        }
                    }
                );
            };
        },
        {
            cid: 0x53;
            action =
            {
                type: "Keypress";
                keys: ["KEY_LEFTCTRL", "KEY_I"];
            };
    },
        {
            cid: 0x56;
            action =
            {
                type: "Keypress";
                keys: ["KEY_LEFTCTRL", "KEY_DOT"];
            };
    }
    );
}
);

Using axis: "REL_WHEEL" instead of axis: "REL_WHEEL_HI_RES" works, though. But I'd rather use hi res scrolling.

tpaniaki commented 1 year ago

Scrolling up/down not working altogether on my system (Arch/Gnome):

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

    smartshift:     {on: false;
                    threshold: 30;};

    hiresscroll:    {hires: false;
                    invert: false;
                    target: false;};
    dpi: 1000;

    buttons:    (     
                    {cid: 0xc3; 
                        action =    {type: "Gestures"; gestures:    (   {direction: "Right"; mode: "OnRelease"; action = {type: "Keypress"; keys: ["KEY_LEFTALT", "KEY_LEFTSHIFT", "KEY_J"];}},
                                                                        {direction: "Left"; mode: "OnRelease"; action = {type: "Keypress"; keys: ["KEY_LEFTALT", "KEY_R"];}},
                                                                        {direction: "Down"; mode: "OnRelease"; action = {type: "Keypress"; keys: ["KEY_LEFTALT", "KEY_Y"];}},
                                                                        {direction: "Up"; mode: "OnRelease"; action = {type: "Keypress"; keys: ["KEY_LEFTALT", "KEY_Q"];}},
                                                                        {direction: "None"; mode: "OnRelease"; action = {type: "Keypress"; keys: ["KEY_LEFTALT", "KEY_G"]};}

                                                                    )
                                    }

                    ;}  
                )   
                }   
            );
Stegorex commented 1 year ago

+1. Arch (Manjaro), KDE Plasma, MX Master 3. Hires scroling does not work at all, without hires, both wheel directions are scrolling up. Scrolling worked flawless with previous version 0.3.0.

impankratov commented 1 year ago

MX Master 2S: Changed target: true to target: false like in example config:

    hiresscroll:
    {
        hires: true;
        invert: false;
        target: false;
    };

And scrolling started working again

Stegorex commented 1 year ago

MX Master 2S: Changed target: true to target: false like in example config:

And scrolling started working again

Thank you for the workaround, it re-enables scrolling for me, too. Only disadvantage is, that the defined multipliers of course have no effect when disabling the target, which makes scrolling less efficient than I'd like it to be, but this is still much better than not being able to scroll at all :-)

S-trace commented 1 year ago

Hi all.

I was affected too, but have resolved this problem. Just use the following config section as an example:

    hiresscroll:
    {
        hires: false;
        invert: false;
        target: true;
        up: {
            mode: "Axis";
            axis: "REL_WHEEL";
            axis_multiplier: 1.0;
        };
        down: {
            mode: "Axis";
            axis: "REL_WHEEL";
            axis_multiplier: -1.0;
        };
    };

Important notes:

  1. axis_multiplier should be float, not int. You can't use axis_multiplier: -1;, you must use axis_multiplier: -1.0; or you will have always scroll up problem.
  2. axis should be "REL_WHEEL", you can't use "REL_WHEEL_HI_RES" or you will have no scroll at all (possibly kernel or xorg bug - I can see REL_WHEEL_HI_RES in evtest, but the scrolling does not work). Tested on Manjaro with 6.3.3-1-MANJARO kernel, xorg-server-21.1.8-1 and KDE. Maybe HI_RES axis can work on other distros.
tpaniaki commented 1 year ago

Nice workaround. However, now I get incremental scrolling even if the wheel is set loose (MX Master 3). I guess the "REL_WHEEL_HI_RES" option was intended to avoid this?

Sdghasemi commented 9 months ago

I had the same issue on my MX Master 3S, migrating back to v0.2.4 was not an option for me because of its various bugs. I used this PR to fix the problem on v3.3.0. Now everything works fine thanks to the author. https://github.com/PixlOne/logiops/pull/413