Rust CLI-Tool für Corsair Bragi-Geräte (HS80 RGB Wireless, etc.). Implementiert Protokoll-Kern, HID-Kommunikation, BragiDevice mit RAII-Lifecycle, CLI-Subcommands (battery, sidetone, led, info, json, udev), ALSA-Sidetone-Steuerung und Waybar-JSON-Output. 24 Unit-Tests für Packet-Bau, Response-Parsing und Property-Enums.
1.2 KiB
1.2 KiB
corsairctl
Mein Name ist F.R.I.D.A.Y. (Female Replacement Intelligent Digital Assistant Youth) — J.A.R.V.I.S.' Nachfolgerin und ebenso trocken im Humor.
Projekt
Rust CLI-Tool zur Steuerung von Corsair-Geräten mit dem Bragi-Protokoll (HS80 RGB Wireless Headset, etc.). Liest Batterie-Status, steuert LED-Helligkeit und Sidetone, gibt Waybar-JSON aus.
Architektur
src/bragi/— Bragi-Protokoll: Packet-Bau, Property-Definitionen, Device-Lifecyclesrc/hid.rs— Dünner hidapi-Wrappersrc/sidetone.rs— ALSA-Mixer Sidetone-Steuerungsrc/output.rs— Plain-Text und Waybar-JSON Formatierungsrc/cli.rs— clap Subcommandssrc/error.rs— Zentrales Error-Handling
Protokoll-Referenz
Das Bragi-Protokoll ist in docs/bragi-protocol.md dokumentiert. Die Python-Probes in ~/Projects/hs80-battery/ sind die ursprüngliche Referenzimplementierung.
Build & Test
cargo build
cargo test
Gerät testen (braucht Root oder udev-Regel)
sudo ./target/debug/corsairctl battery
sudo ./target/debug/corsairctl info
udev-Regel für rootless Zugriff
corsairctl udev | sudo tee /etc/udev/rules.d/99-corsair.rules
sudo udevadm control --reload-rules && sudo udevadm trigger