Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

[!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.

English | 简体中文 | 日本語 | Deutsch | Français | 한국어

OpenLogi

OpenLogi

⚡️ A native, local-first alternative to Logitech Options+, written in Rust 🦀
Remap buttons, DPI, and SmartShift over HID++. No account, no telemetry.

AprilNEA%2FOpenLogi | Trendshift

Options+ ? Try OpenLogi.

Remap buttons, drive DPI and SmartShift, and switch profiles per app — without a Logitech account, telemetry, or the official Options+ install. No cloud, plain TOML config. By default, device-image fetches are the only automatic network calls; update checks and downloads run only when you request or opt into them.


What it is

OpenLogi talks to Logitech HID++ peripherals over Logi Bolt and Unifying receivers, Bluetooth-direct connections, or USB cables — without running Logi Options+. It consists of three components:

  • OpenLogi GUI — a GPUI desktop app: an interactive mouse diagram with clickable hotspots, a per-button action picker (built-in actions plus custom keyboard shortcuts authored in the TOML config), DPI presets, SmartShift, per-device scroll inversion, RGB keyboard lighting, per-application profiles, a live device carousel, and a Settings window localized into 20 languages.
  • OpenLogi agent — the background service that owns the input hook and all device I/O. The GUI is a pure IPC client and starts the agent when needed.
  • OpenLogi CLI — a CLI for headless inventory (list) plus asset-sync and on-device diagnostic subcommands.

Everything stays local: bindings live in a plain TOML file, the agent remaps button presses through the OS input hook, and writes DPI, SmartShift, scroll, and lighting changes straight to the device over HID++.

macOS, Linux, and Windows are supported. Windows is the newest port: it has been validated end-to-end on Windows 11 hardware, but may still have more rough edges than the macOS and Linux builds; see Roadmap.

Beyond Options+

Things OpenLogi does that Options+ won't:

  • Run on Linux. Options+ ships for macOS and Windows only. OpenLogi treats Linux as a first-class platform: evdev/uinput hook, udev rules, a systemd user unit, and .deb / .rpm / .pkg.tar.zst packages.
  • Move the Gesture Button. Pick which physical button owns the gesture role — the dedicated Gesture Button, middle, back, or forward — with per-direction swipe bindings, or turn gestures off entirely. Options+ pins the gesture role to the dedicated Gesture Button.
  • Keep config in plain text. Everything is one TOML file you can read, diff, version-control, and copy between machines.
  • Script it. A real CLI: device inventory, asset prefetch, and on-device HID++ diagnostics (feature/control dumps, DPI / SmartShift round-trips, and keyboard lighting checks).
  • Stay light. Native Rust + GPUI binaries — no Electron suite, no resident updaters, no account, no telemetry.

Roadmap

CapabilityState
Discover Bolt receivers + list paired devices (CLI + GUI)
Unifying receivers (older protocol, replaced by Bolt)
Bluetooth-direct / wired devices (no receiver)
Battery percentage / charge state✅ (online devices)
Interactive GUI: carousel, mouse diagram, action picker✅ macOS + Linux + Windows
Button remapping via the OS input hook✅ macOS + Linux + Windows
Built-in action catalog + custom keyboard shortcuts (TOML-authored)✅ macOS + Linux + Windows¹
DPI control + presets + Cycle / Set-preset actions (HID++ 0x2201)
SmartShift wheel: mode toggle + sensitivity + permanent-ratchet panel (HID++ 0x2111)
Per-device native scroll inversion (HID++ 0x2121)✅ (supported devices)
Static RGB keyboard lighting (HID++ 0x8070 / 0x8080)✅ (supported devices)
Per-application profile overlays (auto-switch on app focus)✅ macOS + Windows, 🟡 Linux (X11 / XWayland only)
Settings window: launch-at-login, updates, permissions, language, appearance✅ macOS + Linux + Windows
Agent status icon✅ macOS menu bar + Windows tray; not applicable on Linux
Interface localization (20 languages: da, de, el, en, es, fi, fr, it, ja, ko, nb, nl, pl, pt-BR, pt-PT, ru, sv, zh-CN, zh-HK, zh-TW)
Linux packaging: udev rules, systemd unit, .deb / .rpm / .pkg.tar.zst✅ Linux
Gesture-button per-direction bindings + live capture✅ (device capability dependent)
Middle / mode-shift / thumbwheel button capture✅ middle on all platforms; mode-shift / thumbwheel device dependent
Windows (agent, GUI, event hook, installer)✅ Windows 11 hardware validated; newer port with ongoing compatibility polish

¹ Media key actions use D-Bus MPRIS on Linux; a handful of macOS-specific actions have no universal Linux equivalent and are no-ops. Windows maps platform actions to native equivalents where available.

Install

[!IMPORTANT] Quit Logi Options+ first — the two applications fight over HID++ access and only one can own a given receiver at a time.

macOS

Requires macOS 13 or later.

Download the signed, notarized .dmg from the latest release and drag OpenLogi.app to /Applications.

Or install via Homebrew:

brew install --cask openlogi

The official Homebrew cask is the default installation path. To explicitly track the latest GitHub release from aprilnea/tap instead:

brew tap aprilnea/tap
brew install --cask aprilnea/tap/openlogi@latest

openlogi@latest is maintained by OpenLogi's release workflow and may update before the official cask autobump lands. Install either openlogi or openlogi@latest, not both.

Linux

Download the package for your distribution from the latest release:

# Debian / Ubuntu
sudo dpkg -i openlogi_*.deb

# Fedora / RHEL
sudo rpm -i openlogi-*.rpm

# Arch Linux
sudo pacman -U openlogi-*.pkg.tar.zst

Packages are published for both x86_64/amd64 and arm64/aarch64.

The package installs udev rules that grant your user access to /dev/hidraw* and /dev/uinput without sudo. After installation, enable the background agent for your user:

systemctl --user enable --now openlogi-agent.service

See docs/INSTALL-linux.md for manual / source installs and distros without systemd.

Windows

Signed portable .zip archives and per-user .msi installers (x86_64 and arm64) are attached to each release. Both ship the GUI (OpenLogi.exe) together with the background agent (openlogi-agent.exe), which owns all device I/O — keep the two files side by side when using the portable zip, or the GUI has nothing to connect to.

Windows support works and has been validated end-to-end on Windows 11 with real hardware — a wired keyboard and a Unifying-receiver mouse, including install, in-place upgrade, and uninstall of the MSI. It is newer than the macOS build, so if you hit a rough edge please report it. The agent shows a system-tray icon (Show Main Window / Quit) so the app stays reachable after the main window is closed. To disable it on Windows, set show_in_menu_bar = false in the TOML [app_settings] block and restart the agent; the GUI toggle is currently macOS-only.

To build from source, see DEVELOPMENT.md.

Usage (CLI)

See USAGE.md

Configuration

See CONFIGURATION.md

Developing

See DEVELOPMENT.md

Acknowledgments

License

Dual-licensed under either of

at your option.

Logo & brand assets

The OpenLogi logo and app icon — the brand assets under design/ — are © 2026 AprilNEA, all rights reserved, and are not covered by the MIT/Apache licenses above; see design/LICENSE. Forking the code grants no right to the OpenLogi name, logo, or icon; please don't use them to represent your own projects, forks, or distributions without prior written permission.


Not affiliated with Logitech. "Logitech", "MX Master", and "Options+" are trademarks of Logitech International S.A.

Repo activity

Repobeats analytics image

关于 About

⚡️A native, local-first alternative to Logitech Options+, written in Rust 🦀 — remap buttons, DPI, and SmartShift over HID++. No account, no telemetry.
dpigpuihidhidpplocal-firstlogitechlogitech-mouselogitech-optionsmouse-remappingmx-masterprivacyrustsmartshift

语言 Languages

Rust98.7%
Shell0.8%
JavaScript0.3%
Nix0.2%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
605
Total Commits
峰值: 165次/周
Less
More

核心贡献者 Contributors