OpenLogi: A Native, Local-First Logitech Options+ Replacement Built in Rust
If you've ever used a Logitech mouse or keyboard on Linux, you know the pain. The official Logitech Options+ app works okay on Windows and macOS, but on Linux? It's a ghost town. And even on other platforms, it's a bloated Electron app that phones home to Logitech servers for... reasons.
Enter OpenLogi — a native, local-first replacement for Logitech Options+ written entirely in Rust. No Electron, no cloud dependencies, no nonsense. Just a lean, fast tool that talks directly to your hardware.
What It Does
OpenLogi lets you configure Logitech devices (like the MX Master series, G-series mice, and keyboards) without the official software. It supports:
- Button remapping
- DPI adjustments
- Scrolling behavior changes (smooth vs. ratcheting)
- Per-application profiles
- System-level shortcuts and gestures
All of this runs locally, no internet required. It reads and writes device settings via the USB HID protocol, so it works with most modern Logitech peripherals.
Why It’s Cool
Local-first. No accounts. No telemetry. No "please update" popups. OpenLogi stores all configuration in a local YAML or TOML file. You can version control your mouse setup if you're that kind of developer.
Rust. Not just a buzzword. The project uses rusb for USB communication and avoids unsafe code where possible. The result is a binary that starts instantly and uses a fraction of the RAM of Electron-based tools.
Cross-platform flexibility. While the focus is Linux, the codebase is designed to work on macOS and Windows too. It uses platform-agnostic HID libraries, so adding support is just a compile away.
Open source. The entire codebase is on GitHub. You can audit it, fork it, or contribute features. No more reverse-engineering Logitech's proprietary protocols alone — the community figures it out together.
How to Try It
- Clone the repo:
git clone https://github.com/AprilNEA/OpenLogi.git
cd OpenLogi
- Build and run:
cargo build --release
./target/release/openlogi
Check the config.example.yml file in the repo for a starting configuration. You'll need to figure out your device's vendor and product IDs (usually 046d for Logitech) — but that's a one-time lookup.
Alternatively, if you just want to see what it looks like, the README has screenshots and command examples.
Final Thoughts
OpenLogi is the kind of project that makes you wonder why Logitech doesn't provide this themselves. It's small, focused, and does one thing well. If you're running Linux and tired of managing your MX Master through an Android app or some hacky solaar script, give this a shot.
Even if you're on macOS or Windows and just want to avoid Electron overhead, it's worth a look. The config file approach is refreshing — no hidden registry keys, no mysterious "cloud sync" conflicts.
Just you, your mouse, and some Rust.
Found this tool interesting? Follow @githubprojects for more open source discoveries.
Repository: https://github.com/AprilNEA/OpenLogi