Files
corsairctl/DECISIONS.md
T
nevaforget 8a9f31f1b4 chore: add MIT license, record private-use scope
Add MIT LICENSE file (Cargo.toml already declares MIT). Record in
DECISIONS.md that the open-source publish/rename plan is dropped: the
tool is for personal use, distributed as an Arch package via the private
moonarch repo and used primarily as a Waybar widget.
2026-06-10 16:38:10 +02:00

2.6 KiB
Raw Blame History

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.

2026-06-10 Scope: private use only, revert to MIT (supersedes the three 2026-04-09 decisions)

  • Who: Dom, F.R.I.D.A.Y.
  • Why: The open-source publish plan (rename away from "Corsair", multi-protocol backend layer, crates.io, upstream to HeadsetControl) was dropped. The tool is for personal use across Dom's own machines, distributed as an Arch package via the private moonarch repo (Gitea registry at gitea.moonarch.de), used primarily as a Waybar widget.
  • Tradeoffs: GPLv3 and the rename were only justified by public distribution and porting HeadsetControl (GPLv3) code. With no public release and no GPL-derived code in the tree, copyleft and the trademark rename buy nothing. MIT is simpler and reversible — switch to GPLv3 only if GPL code is later pulled in.
  • How: Revert license to MIT (Cargo.toml + MIT LICENSE file). Keep the name corsairctl. PLAN.md retained as a record of the considered direction, no longer driving work.