AprilNEA / OpenLogi
git clone https://github.com/AprilNEA/OpenLogi.git
v0.8.15 · 2d ago
⚡️A native, local-first alternative to Logitech Options+, written in Rust 🦀 — remap buttons, DPI, and SmartShift over HID++. No account, no telemetry.
+15
stars, 24h · #991
+~105
stars, 7 days · #1,207
+~450
stars, 30 days · #1,182
24k
★ total · +0% this week
839
forks · 554 open issues
Star history (as recorded here)
LanguageRust
LicenseApache-2.0
Created2026-05-24 (5mo ago)
Last pushtoday
Watchers85
OwnerUser
GitHub topics
dpigpuihidhidpplocal-firstlogitechlogitech-mouselogitech-optionsmouse-remappingmx-masterprivacyrustsmartshift
Links
- GitHub: github.com/AprilNEA/OpenLogi
- Homepage: https://openlogi.org
- Releases · Issues · Hacker News mentions
README excerpt
> [!WARNING] > **OpenLogi is under active development** and not yet stable — features and config may still change. Give the repo a **Star** ⭐ and **Watch** 👀 it to get notified when a new release lands. OpenLogi ⚡️ A native, local-first alternative to Logitech Options+, written in Rust 🦀 Unlock the full capabilities of Logitech mice, keyboards, and webcams over HID++ and UVC > **Fed up with Options+? Try OpenLogi.** Runs on macOS, Linux, and Windows. --- ## Beyond Options+ Things OpenLogi does that Options+ won't: - **Stay light.** Native Rust + GPUI. - **Run on Linux.** Linux is a first-class platform in OpenLogi. - **Gestures on supported buttons.** Assign gesture actions to supported controls — or turn gestures off entirely. - **Plain-text config.** Everything is one TOML file you can sync between machines however you like. - **Script it.** A real CLI alongside the GUI, with hardware diagnostics for DPI, pointer scaling, and SmartShift. ## Features - Devices connected over Logi Bolt receivers, Unifying receivers, Bluetooth, or a wired connection, with battery percentage and charge state - Low-battery notices at the bottom of the screen, once per discharge, without an OS notification permission (on by default; Settings › General) - An on-screen indicator when a keyboard turns Caps Lock on or off, and Num Lock or Scroll Lock on Windows and Linux (`0x4220`, supported keyboards; on by default; Settings › General) - Easy-Switch channels: the name, OS, and connection of the computer paired on each channel, with a rename on devices that allow it (`0x1815`, supported devices) - Button remapping via the OS input hook: a built-in action catalog plus custom keyboard shortcuts authored in the TOML config, including independent short/long-press actions and hold-until-release chords for push-to-talk¹ - Per-application profile overlays that auto-switch on app focus (macOS + Windows; Linux on X11 / XWayland only); an `[apps]` alias lets one profile follow an application across platforms - Litra lights: power, brightness, and color temperature, with optional auto power that follows camera activity **Mouse** - Capture and remap the middle, mode-shift, and thumbwheel buttons (middle everywhere, the rest where the device exposes them) - Per-direction gesture bindings with live capture on supported buttons: Middle Click, Back/Forward, DPI/ModeShift, the dedicated gesture button, and the haptic panel - DPI/ModeShift gestures require device-reported diversion and raw-XY support. - Primary clicks and wheel rotation/tilt cannot be newly assigned gestures. - Actions Ring: a cursor-centred, eight-slot overlay of actions (`ShowActionsRing`), with per-application layouts - DPI control with presets and Cycle / Set-preset actions (`0x2201`) - SmartShift wheel: mode toggle, sensitivity, and a permanent-ratchet panel (`0x2111`) - Per-device native scroll inversion (`0x2121`, supported devices) **Keyboard** - Global F-key remapping: the same action catalog as the mouse,