OpenLogi

SmartShift

Control scroll-wheel mode between ratchet and free-spin, set the auto-release threshold, and bind the toggle to a button.

Switch the scroll wheel between a clicky ratchet feel and frictionless free-spin, set how hard you have to flick before it releases, and pin a permanent ratchet that never lets go, backed by the HID++ 0x2111 smartShiftEnhanced feature (the variant on MX Master 3 / 3S / 4 and current MX-line mice). Everything lives in the GUI's SmartShift panel, and the mode toggle is also a bindable action.

From the GUI

Select the mouse in the device carousel; its detail panel has a SmartShift section with:

  • Wheel mode — a two-pill segmented control, Free spin / Ratchet. Free spin lets the wheel coast for long-page scrolling; Ratchet gives the stepped, tactile clicks. The selected pill is highlighted.
  • Sensitivity threshold — an 850 slider (default 16) that sets how fast you have to spin before the wheel auto-releases into free-spin. Higher keeps the ratchet engaged longer. The numeric label tracks your drag, but the value is pushed to the device only when you release the slider. It's greyed out unless you're in ratchet mode with permanent ratchet off. The floor is deliberate: below it the ratchet releases at everyday scroll speeds and the wheel feels stuck spinning.
  • Permanent ratchet — an On / Off toggle. On disables the auto-release entirely, so the wheel stays ratcheted no matter how fast you spin; Off restores your last threshold. It has no meaning under free spin and is disabled there.
  • Thumb wheel sensitivity — a per-device override of the app-wide thumb-wheel setting; see Scrolling.

The panel reads the wheel's current state the first time it's shown. If the device is asleep or offline you'll see an offline message with a line to click and retry; mice that don't expose the feature show This device does not support SmartShift.

As an action

ToggleSmartShift flips the wheel between free-spin and ratchet on a button press, without opening the panel. Bind it from the GUI's action picker or by hand in the config, and scope it per app with a profile.

In the config

The mouse keeps SmartShift in volatile memory, so a power cycle would otherwise forget it. OpenLogi records your choice per device and the agent re-applies it on every reconnect:

[devices."receiver:aabbccdd:slot:1".smartshift]
mode = "ratchet"        # or "free"
auto_disengage = 16     # 8–254, or 255 for a permanent ratchet
tunable_torque = 0      # 1–100 where the device supports tunable torque

A persisted threshold below the supported floor (including the firmware's 0 "don't change" sentinel) is healed back to the default on load.

Quit Logi Options+ first so OpenLogi can own the device. Mice that expose the older 0x2110 smartShiftWheel variant are supported through the same panel.

Status: macOS, Linux, and Windows. See the roadmap for what's wired up. Protocol detail is on 0x2111 smartShiftEnhanced and 0x2110 smartShiftWheel.

On this page