- Rust 99.9%
|
All checks were successful
Release / release (push) Successful in 3m28s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .forgejo/workflows | ||
| crates | ||
| packaging | ||
| .gitignore | ||
| .goreleaser.yaml | ||
| Cargo.lock | ||
| Cargo.toml | ||
| clippy.toml | ||
| LICENSE-APACHE | ||
| LICENSE-MIT | ||
| README.md | ||
| rust-toolchain.toml | ||
mx4
A Linux-only replacement for Logitech Options+, for one mouse: the MX Master 4.
Button remapping, hold-and-swipe gestures, resolution, SmartShift, both wheels, per-application profiles, a haptic Actions Ring at the cursor, and a pulse in the hand when a notification arrives. Plain-TOML configuration, no account, no telemetry.
Why one device
Options+ covers every Logitech device on three platforms. This covers one device on one platform, which is what lets it be about 20k lines and a 12 MB daemon that maps no GPU driver at all.
Two processes
mx4d |
The daemon. Owns the mouse over HID++, synthesises input through uinput, and draws the Actions Ring. |
mx4 |
The settings window. Writes config.toml and tells the daemon to re-read it. |
Settings live in $XDG_CONFIG_HOME/mx4/config.toml — readable, hand-editable,
and applied the moment it changes.
Requirements
- A Wayland session. KDE Plasma is what it is developed against: the Actions
Ring needs
wlr-layer-shell, and it asks KWin where the pointer is because Wayland offers no way to ask directly. - Membership of the
inputgroup, for reading the mouse's buttons:sudo usermod -aG input $USER, then log out and back in. Without it every ordinary remap is silently inert.
Building
cargo build --release --workspace
Then run ./target/release/mx4d, and ./target/release/mx4 to configure it.
Licence
Dual-licensed under MIT or Apache 2.0, at your option.
Two vendored pieces carry their own terms, kept beside them:
crates/mx4-hidpp/is a pruned fork of thehidppcrate by Lukas Schulte Pelkum, by way of OpenLogi's fork. 0BSD — seecrates/mx4-hidpp/LICENSE.crates/mx4-ui/action-icons/are Lucide icons. ISC, with some derived from Feather under MIT — see the LICENSE beside them.
Not affiliated with Logitech
Logitech, MX Master and Options+ are trademarks of Logitech International S.A. This project is an independent, unofficial program that talks to a device its author bought. It is not endorsed by, sponsored by, or connected with Logitech in any way, and the names above are used only to say which device it works with and what it replaces.
The HID++ protocol it speaks was documented by Logitech in a public drive folder and mapped by the Solaar project over many years; this program owes both.