Driver: Logiops project address
Compatible Devices: Check here
Logiops wiki: Check Here

Dependencies

This project requires a C++14 compiler, cmake, libevdev, libudev, and libconfig.

$ sudo apt install cmake libevdev-dev libudev-dev libconfig++-dev

Install

Clone this

Building

  1. Enter directory

    $ cd logiops
  2. Compile project

    $ mkdir build
    $ cd build
    $ cmake ..
    $ make
  3. Install

    $ sudo make install
  4. Something you will like …

    • Set the daemon to start at boot
      $ sudo systemctl enable --now logid
    • Check the running status
      $ sudo service logid status
    • Restart
      $ sudo service logid restart

Check CID (Control IDs)

Check CID that your mouse support.

$ sudo logid -v

will be like … (All CIDs and it’s corresponding function are in CIDs List)

Configuration File

Your default configuration file is located in /etc/logid.cfg.

# If you have logid.cfg
$ sudo vim /etc/logid.cfg

However, if you didn’t find it, why not new one. (lol)

# If you didn't find logid.cfg
$ sudo vim /etc/logid.cfg

You can customize it on your own !!! OwOb
This is official configuration file syntax detailed reference: Check here
Or you can refer to mine.

  • device name:
  • keys:
    • Mine input event:
      • forward/back button: Switch desktop
      • left/right scroll: Switch page
      • etc …
    • Check what input event you want: Here
devices: (
{
    name: "Wireless Mobile Mouse MX Anywhere 2S";
    buttons: (
        {
            cid: 0x56;
            action =
            {
                type: "Keypress";
                keys: ["KEY_LEFTCTRL","KEY_LEFTALT","KEY_RIGHT"];
            };
        },
        {
            cid: 0x53;
            action =
            {
                type: "Keypress";
                keys: ["KEY_LEFTCTRL","KEY_LEFTALT","KEY_LEFT"];
            };
        },
        {
            cid: 0x5b;
            action =
            {
                type: "Keypress";
                keys:["KEY_LEFTCTRL","KEY_PAGEUP"];
            };
        },
        {
            cid: 0x5d;
            action =
            {
                type: "Keypress";
                keys:["KEY_LEFTCTRL","KEY_PAGEDOWN"];
            };
        },
        {
            cid: 0xd7;
            action =
            {
                type: "Gestures";
                gestures:(
                {
                    direction:"Up";
                    mode="OnInterval";
                    interval=75;
                    action=
                    {
                        type:"Keypress";
                        keys:["KEY_VOLUMEUP"];
                    }
                },
                {
                    direction:"Down";
                    mode="OnInterval";
                    interval=75;
                    action=
                    {
                        type:"Keypress";
                        keys:["KEY_VOLUMEDOWN"];
                    }
                },
                {
                    direction:"Left";
                    mode="OnRelease";
                    action=
                    {
                        type:"Keypress";
                        keys:["KEY_LEFTCTRL","KEY_C"];
                    }
                },
                {
                    direction:"Right";
                    mode="OnRelease";
                    action=
                    {
                        type:"Keypress";
                        keys:["KEY_LEFTCTRL","KEY_V"];
                    }
                },
                {
                    direction:"None";
                    mode="OnRelease";
                    action=
                    {
                        type:"Keypress";
                        keys:["KEY_ENTER"];
                    }
                }
                )
            };
        }

    );
    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;
        },
    }
}
);