Skip to content

Logitech Master 4 Settings - WORKING EXAMPLE #520

@vjeko2404

Description

@vjeko2404

MX Master 4 initial CID mapping and full gesture configuration
Device released: 30.09.2025
CID map reverse-engineered manually – verified on Arch Linux
Config below includes:
– SmartShift toggle
– Thumb rest gesture → media control (volume, track, play/pause)
– Super/meta thumb key
– Browser nav bindings

Button map reference included for maintainers.

//  Logitech MX Master 4 Button Mapping                             
//  0x0c4  → Top button behind scroll wheel (MagSpeed toggle)      
//  0x052  → Middle click (wheel press)  (Standard middle click)
//  0x053  → Back button (side) (Browser Back)  
//  0x056  → Forward button (side) (Browser Forward)   
//  0x0c3  → Gesture button (Gesture button) (Media gesture hub)   
//  0x1a0  → Thumb button (bottom-left corner) (Super/Meta key)     

//  Configuration for Logitech MX Master 4      
//  Full gesture implementation on the gesture button for media control 

devices: (
  {
    name: "MX Master 4";

    // Set the DPI.
    dpi: 4000;

    // Enable smartshift to automatically switch between ratchet and free-spin.
    smartshift: {
      on: true;
      threshold: 15;
    };

    // Enable high-resolution scrolling for a smoother feel.
    hiresscroll: {
      on: true;
    };

    buttons: (
      // ── Top button (behind scroll wheel) ── Toggles SmartShift
      {
        cid: 0xc4;
        action: {
          type: "ToggleSmartshift";
        };
      },

      // ── Back button (side) ──────────────── Browser Back
      {
        cid: 0x53;
        action: {
          type: "Keypress";
          keys: [ "KEY_BACK" ];
        };
      },

      // ── Forward button (side) ───────────── Browser Forward
      {
        cid: 0x56;
        action: {
          type: "Keypress";
          keys: [ "KEY_FORWARD" ];
        };
      },

      // ── Thumb rest click ────────────────── Super/Windows key
      {
        cid: 0x1a0;
        action: {
          type: "Keypress";
          keys: [ "KEY_LEFTMETA" ];
        };
      },

      // ── Gesture button ──────────────────── Media Gestures
      {
        cid: 0xc3;
        action: {
          type: "Gestures";
          gestures: (
            // Hold + Move Up ──────────────── Volume Up
            {
              direction: "Up";
              mode: "OnRelease";
              action: {
                type: "Keypress";
                keys: [ "KEY_VOLUMEUP" ];
              };
            },

            // Hold + Move Down ────────────── Volume Down
            {
              direction: "Down";
              mode: "OnRelease";
              action: {
                type: "Keypress";
                keys: [ "KEY_VOLUMEDOWN" ];
              };
            },

            // Hold + Move Left ────────────── Previous Track
            {
              direction: "Left";
              mode: "OnRelease";
              action: {
                type: "Keypress";
                keys: [ "KEY_PREVIOUSSONG" ];
              };
            },

            // Hold + Move Right ───────────── Next Track
            {
              direction: "Right";
              mode: "OnRelease";
              action: {
                type: "Keypress";
                keys: [ "KEY_NEXTSONG" ];
              };
            },

            // Simple click (no movement) ──── Play/Pause
            {
              direction: "None";
              mode: "OnRelease";
              action: {
                type: "Keypress";
                keys: [ "KEY_PLAYPAUSE" ];
              };
            }
          );
        };
      }
    );
  }
);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions