Skip to content
AprilNEAPublic

About

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

Topics

Resources

Code of conduct

Security policy

Stars

23.9k stars

Watchers

83 watching

Forks

Latest commit

 

History

1,782 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

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

AprilNEA%2FOpenLogi | Trendshift OpenLogi - A local-first alternative to Logitech Options+ | Product Hunt

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: a JSON automation API for DPI, SmartShift, Fn-lock, and report rate, plus hardware diagnostics.

Features

OpenLogi device list with six Logitech devices: mice, a keyboard, and a Litra light

Devices

  • Logi Bolt and Unifying receivers, Bluetooth, and wired connections, with battery level and charge state
  • Low-battery notices at the bottom of the screen, once per discharge, with no OS notification permission
  • An on-screen indicator when a keyboard turns Caps Lock on or off, plus Num Lock and Scroll Lock on Windows and Linux
Easy-Switch card listing three paired computers Easy-Switch
  • See which computer is paired on each channel, with its OS and connection
  • Rename a channel on devices that allow it

Buttons and actions

Button mapping for an MX Master 4, with the gesture button inspector open Remap any button
  • A built-in action catalog, custom shortcuts, typed text, or multi-step workflows
  • Separate tap and hold actions, and hold-to-talk chords that release with the button
  • Gestures on Middle Click, Back/Forward, DPI/ModeShift, the gesture button, and the haptic panel
Actions Ring editor with eight slots around the cursor Actions Ring
  • Eight actions in a ring around the cursor
  • Its own layout per application
MX Keys S with three keys bound to Launchpad, Lock Screen, and Screenshot Keyboard keys
  • Bind media, emoji, screenshot, and other dedicated keys like mouse buttons
  • Restore one key to its device default, or reset the whole row

Per-application profiles switch with the focused app. An [apps] alias lets one profile follow an application across platforms.

Pointer and scrolling

Pointer tuning card with a DPI slider Pointer
  • DPI presets with cycle and set-preset actions
  • Pointer speed and report rate
  • Precision Mode: one button switches the mouse to its slowest speed and back
SmartShift card with wheel mode, sensitivity, and scrolling force SmartShift
  • Wheel mode and sensitivity
  • Scrolling force on SmartShift Enhanced mice
  • A permanent-ratchet switch
Scrolling card with inversion, wheel resolution, and smooth wheel
Scrolling
  • Scroll inversion per device, natively or in software
  • Wheel resolution and smooth wheel scrolling
  • Hold Back or Forward and roll the wheel to scroll sideways on mice without a thumb wheel

Keyboard and lighting

Keys and Backlight cards for an MX Keys S Keyboard
  • Fn Lock, and multi-platform keyboards that stay on the host OS layout
  • Backlight level, automatic brightness, and battery saving
  • The backlight level shown on screen as it changes
  • Static RGB on supported keyboards
Litra Glow lighting panel with brightness and color temperature Litra lights
  • Power, brightness, and color temperature
  • Turns on with the camera if you want
  • Keeps a change made on the light itself

Webcams

  • Any Logitech UVC webcam (Brio, StreamCam, the C920 series, …), plug and play
  • Live preview that holds the camera only while you watch; leave it and the LED goes off
  • Zoom, pan, tilt, focus, exposure, white balance, and every other UVC control, written to the hardware so Meet, Zoom, and OBS see the change
  • Built-in Default / Streaming / Video call profiles plus your own snapshots, kept per camera

Feature coverage depends on what each device reports; the app shows only the controls a device supports.

Platform support

Feature macOS Windows Linux
Mouse button remapping and gestures ✓ ✓ ✓
Keyboard F-key remapping ✓ ✓ —
Per-application profiles ✓ ✓ X11, wlroots (sway, Hyprland), GNOME with the companion extension
Mouse profile follows the window under the pointer ✓ ✓ X11 only
Media keys Native Native D-Bus MPRIS
Window-manager actions (desktops, Mission Control, …) Native Native equivalents GNOME, KDE (KWin), Hyprland; some macOS-only actions do nothing
Menu-bar / tray icon ✓ ✓ —
In-app updates Sparkle Built-in Built-in

Install

Important

Quit Logi Options+ (and Solaar on Linux) first. Only one application can own a receiver at a time.

Platform System Architecture
macOS macOS 13 or later Apple silicon, Intel
Linux GLIBC 2.35 or newer x86_64, arm64
Windows Tested on Windows 11 x86_64, arm64

Every download carries a minisign signature and an entry in SHA256SUMS. To build from source, see DEVELOPMENT.md.

macOS

Download for Mac: Apple silicon (.dmg)   Download for Mac: Intel (.dmg)

Or with Homebrew:

brew install --cask openlogi

Open OpenLogi and grant Accessibility and Input Monitoring when macOS asks. OpenLogi then updates itself through Sparkle.

Linux

Download for Linux: Debian, Ubuntu (.deb)   Download for Linux: Fedora, SUSE (.rpm)   Download for Linux: Arch (.pkg.tar.zst)

Or install the right package for your distribution with one command. It verifies the minisign signature and starts the agent; install minisign first:

curl -fsSL https://github.com/AprilNEA/OpenLogi/releases/latest/download/install.sh | sh

To read the script before running it, and for Flatpak, NixOS, and distributions without systemd, see INSTALL-linux.md.

Windows

Download for Windows: installer (.msi)   Download for Windows: portable (.zip)

Usage (CLI)

See USAGE.md

Configuration

Settings use plain TOML; saves preserve symlinked config files. See CONFIGURATION.md.

Developing

See DEVELOPMENT.md, including macOS input-hook safety.

Acknowledgments

  • Windows, cameras, and i18n by @davidbudnick — keyboard RGB, Windows support, Logitech webcam support
  • Linux port by @cserby — Linux support
  • Solaar by @pwr — open-source HID++ implementation
  • Mouser by @TomBadash — a local, account-free Options+ replacement

License

The code in this repository is dual-licensed under either of

at your option.

Third-party code

crates/openlogi-hidpp is a vendored fork of hidpp by @lus, licensed 0BSD.

Logo & brand assets

Thanks to @kubai087 for designing the OpenLogi logo. 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.

Topics

Resources

Code of conduct

Security policy

Stars

23.9k stars

Watchers

83 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages