c38996b8a4
PLAN.md: 5-phase plan to publish as a multi-protocol headset tool (rename away from Corsair trademark, abstract device layer, port additional protocols, publish, upstream to HeadsetControl). DECISIONS.md: rationale for GPLv3 relicense, naming constraints, and the multi-protocol architecture.
1.7 KiB
1.7 KiB
Decisions
2026-04-09 – License: GPLv3 instead of MIT
- Who: Dom, F.R.I.D.A.Y.
- Why: Plan to support multiple headset protocols using HeadsetControl (GPLv3) as reference for protocol implementations. HeadsetControl's code is community-tested — reimplementing blind without hardware to test against is impractical. GPL copyleft is acceptable since the tool is open source on GitHub anyway.
- Tradeoffs: MIT would allow proprietary use, but we gain access to tested protocol implementations. GPL has no practical downside for a CLI tool distributed as source.
- How: GPLv3-or-later in Cargo.toml and LICENSE file.
2026-04-09 – Tool name: must avoid "Corsair" trademark
- Who: Dom, F.R.I.D.A.Y.
- Why: "Corsair" is a registered trademark. Publishing under
corsairctlrisks trademark issues. "Bragi" is also risky (Bragi GmbH, Danish audio company). - Tradeoffs:
headsetctlis descriptive and follows Linux naming conventions (bluetoothctl,brightnessctl). Less specific but safer. - How: Rename TBD — to be decided as part of the publish plan.
2026-04-09 – Multi-protocol architecture using HeadsetControl as reference
- Who: Dom, F.R.I.D.A.Y.
- Why: Each headset vendor uses a proprietary HID protocol. No common standard exists. HeadsetControl already has tested implementations for SteelSeries, Logitech, HyperX, Corsair, etc.
- Tradeoffs: Porting C code to Rust takes effort, but the protocol logic is the hard part (byte sequences, timing, quirks) — and that's already documented in HeadsetControl's source.
- How: Modular backend architecture — each protocol as a separate module behind a common trait. Bragi is the first backend; others follow.