Skip to content
Open source · GPL-3.0

Logitech devices, natively on Linux

Remap buttons, set DPI and read real battery levels — without proprietary software, without a cloud account, and without sudo.

Wayland and X11 · No telemetry · No account

OpenLogi
Connected

MX Master 3S

Bolt · 0x4082

72%
Sensitivity1600 DPI

Stored onboard — survives a reboot

Button mappings

Delivered by

Diversion + uinput

The firmware stops sending this button’s normal report and notifies OpenLogi instead.

Speaks HID++ over every connection Logitech ships

Bolt
Unifying
Lightspeed
Bluetooth LE
USB cable

Capabilities

Everything Options+ does, minus the parts you didn’t want

Built directly on Logitech’s HID++ protocol, so the app talks to your hardware the same way the official software does — just without the account, the telemetry, or the missing Linux build.

Remap every button

Bind any reprogrammable control to a keystroke, a media key, a shell command, a URL, or a workspace switch. OpenLogi asks the firmware to divert the button, then synthesises whatever you mapped it to.

DPI written onboard

Sensitivity is stored in the device’s own flash, so it survives a reboot and keeps working with OpenLogi closed. Where firmware supports it, onboard always wins over host-side trickery.

Real battery state

Charge level, charging status and capability are read straight from the device over HID++ — not estimated from voltage curves or guessed from a lookup table.

Discovered, not hard-coded

Screens appear because your device reports the matching HID++ feature, never because its name is on a list. Plug in hardware released next year and the right controls show up.

Never runs as root

The one privileged step is installing a udev rule. After that, access follows your login session through a uaccess ACL and is revoked when you log out.

Shares the bus

A software id tag on every request means OpenLogi coexists with Solaar and fwupd instead of fighting them for the device. Run all three at once.

How it works

Four steps from plugged in to remapped

No kernel module, no patched driver, no reverse-engineered binary blob. Just the vendor protocol, spoken correctly.

  1. 01

    Find the device

    Endpoints are located by the shape of their HID report descriptor rather than by matching product ids, so receivers, Bluetooth and cabled devices all resolve the same way.

    usage page 0xFF00 → hidraw node
  2. 02

    Ask what it can do

    The device is queried for its feature table at runtime. Screens in the app appear because the hardware reports the matching feature, never because a model name was on a list.

    feature 0x2201 → DPI panel
  3. 03

    Divert the button

    For anything the firmware cannot do itself, OpenLogi tells it to stop emitting that button’s normal report and send a notification instead.

    0x1B04 setCidReporting
  4. 04

    Emit the real action

    Notifications become input through the kernel’s uinput device. Because this happens below the display server, the same path works identically on Wayland and X11.

    /dev/uinput → keystroke

Trust

A configuration tool should not be a security problem

Anything that can remap your mouse buttons can, by definition, synthesise keystrokes. That deserves a higher bar than the usual “trust us” — so the privilege model is deliberately narrow, and every line of it is public.

  • Runs as your user, never root

    A single udev rule is installed once at setup. It grants an ACL through uaccess, so device access belongs to whoever is physically logged in and disappears at logout.

  • No network code at all

    There is no account, no sync, no telemetry and no update ping. The app talks to your hardware and to your desktop session — nothing else.

  • Auditable end to end

    Around 4,500 lines of Rust and Vue under GPL-3.0. The protocol layer, the input engine and this website are all public and readable in an afternoon.

  • Minimum viable permissions

    Input synthesis uses a dedicated group that grants write access to uinput only — deliberately not the input group, which would allow reading every keystroke on the system.

FAQ

Questions worth answering up front

For Linux, that is the intent — Options+ has never shipped a Linux build. OpenLogi covers button remapping, DPI, battery and device information. Options+ features that depend on Logitech’s cloud services, such as Flow and account sync, are out of scope by design.

Your mouse already supports this

The firmware has spoken HID++ the whole time. OpenLogi is just the first Linux app that asks it properly.