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.
20 lines
1.7 KiB
Markdown
20 lines
1.7 KiB
Markdown
# 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 `corsairctl` risks trademark issues. "Bragi" is also risky (Bragi GmbH, Danish audio company).
|
||
- **Tradeoffs**: `headsetctl` is 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.
|