Pages

Saturday, February 28, 2026

MX Master 3S - Mac-like Button Configuration on Fedora Linux

OVERVIEW

--------

Configured the Logitech MX Master 3S mouse to mimic default macOS

button behavior using logiops — a userspace driver for Logitech devices.


PREREQUISITES

-------------

- logiops package installed:

    sudo dnf install logiops


- Enable and start the logid service:

    sudo systemctl enable logid

    sudo systemctl start logid



BUTTON MAPPING (Mac → Linux equivalent)

----------------------------------------

  Thumb button (tap)       → GNOME Activities overlay  (like Mission Control)

  Thumb + swipe Up         → Show all windows           (like Exposé)

  Thumb + swipe Down       → Show desktop               (Super+D)

  Thumb + swipe Left       → Switch to left workspace   (like swipe between desktops)

  Thumb + swipe Right      → Switch to right workspace

  Back button              → Browser / app Back

  Forward button           → Browser / app Forward

  Button behind scroll     → Toggle SmartShift (ratchet ↔ free-spin)

  Scroll wheel             → Smooth hi-res scroll       (like macOS smooth scroll)

  SmartShift               → Auto mode-switch at threshold 30



STEPS

-----


1. Backup existing config (if any):

   sudo cp /etc/logid.cfg /etc/logid.cfg.bak



2. Write the new config to /etc/logid.cfg:

   sudo nano /etc/logid.cfg

   (or use the config block below)



3. Paste the following configuration:


-------- /etc/logid.cfg --------

devices: (

{

  name: "MX Master 3S";


  smartshift:

  {

    on: true;

    threshold: 30;

  };


  hiresscroll:

  {

    hires: true;

    invert: false;

    target: false;

  };


  dpi: 1750;


  buttons: (

    {

      # Gesture/Thumb button

      cid: 0xc3;

      action =

      {

        type: "Gestures";

        gestures: (

          {

            direction: "None";

            mode: "OnRelease";

            action =

            {

              type: "Keypress";

              keys: ["KEY_LEFTMETA"];

            };

          },

          {

            direction: "Up";

            mode: "OnRelease";

            action =

            {

              type: "Keypress";

              keys: ["KEY_LEFTMETA", "KEY_W"];

            };

          },

          {

            direction: "Down";

            mode: "OnRelease";

            action =

            {

              type: "Keypress";

              keys: ["KEY_LEFTMETA", "KEY_D"];

            };

          },

          {

            direction: "Left";

            mode: "OnRelease";

            action =

            {

              type: "Keypress";

              keys: ["KEY_LEFTCTRL", "KEY_LEFT"];

            };

          },

          {

            direction: "Right";

            mode: "OnRelease";

            action =

            {

              type: "Keypress";

              keys: ["KEY_LEFTCTRL", "KEY_RIGHT"];

            };

          }

        );

      };

    },

    {

      # Back button

      cid: 0x53;

      action =

      {

        type: "Keypress";

        keys: ["KEY_BACK"];

      };

    },

    {

      # Forward button

      cid: 0x56;

      action =

      {

        type: "Keypress";

        keys: ["KEY_FORWARD"];

      };

    },

    {

      # Button behind scroll wheel

      cid: 0xc4;

      action =

      {

        type: "ToggleSmartshift";

      };

    }

  );

});

-------- end of config --------



4. Restart the logid service to apply:

   sudo systemctl restart logid



5. Verify no errors:

   journalctl -u logid -n 20 --no-pager


   Expected output (no WARN/ERROR lines):

     [INFO] Device found: MX Master 3S on /dev/hidrawX:255



BUTTON CID REFERENCE (MX Master 3S)

-------------------------------------

  0xc3  → Thumb / Gesture button

  0xc4  → Button behind scroll wheel (mode shift)

  0x53  → Back button

  0x56  → Forward button



NOTES

-----

- KEY_LEFTSUPER is NOT a valid keycode in logiops — use KEY_LEFTMETA instead.

- If the mouse is not detected, check: journalctl -u logid -f

- Config file location: /etc/logid.cfg

- Backup location:      /etc/logid.cfg.bak

- logiops docs:         https://github.com/PixlOne/logiops

No comments:

Post a Comment