Add CLI command for headphone mute (hpmute) #1

Open
opened 2026-02-24 19:00:37 +00:00 by thebrianbug · 1 comment
thebrianbug commented 2026-02-24 19:00:37 +00:00 (Migrated from github.com)

Note

This issue and the accompanying PR (#2) were written with the help of an LLM (Claude).

Summary

The Wave3 class already implements get_hp_mute() and set_hp_mute() for Entity 5 (headphone output), and discover correctly reads the mute state — but there's no CLI command to actually toggle/set it.

Currently mute only controls the microphone mute (Entity 6). There's no way to mute the headphone output from the CLI.

Problem

Setting volume 0 does not silence the headphone jack — audio still comes through. The only way to stop audio routing to the Wave:3's 3.5mm headphone jack is via the hardware mute, which requires the Elgato Wave Link software (Windows/Mac only).

Suggested implementation

Add an hpmute command (similar to the existing mute command) that wraps the existing set_hp_mute() / get_hp_mute() methods:

wave3ctl hpmute              Toggle headphone mute
wave3ctl hpmute on|off       Set headphone mute

The backend logic is already there in the Wave3 class — it just needs a CLI entry point in main().

Environment

  • NixOS, PipeWire, kernel module loaded via extraModulePackages
  • Wave:3 firmware up to date
  • wave3ctl discover confirms Entity 5 mute control is accessible
> [!NOTE] > This issue and the accompanying PR (#2) were written with the help of an LLM (Claude). ## Summary The `Wave3` class already implements `get_hp_mute()` and `set_hp_mute()` for Entity 5 (headphone output), and `discover` correctly reads the mute state — but there's no CLI command to actually toggle/set it. Currently `mute` only controls the **microphone** mute (Entity 6). There's no way to mute the headphone output from the CLI. ## Problem Setting `volume 0` does not silence the headphone jack — audio still comes through. The only way to stop audio routing to the Wave:3's 3.5mm headphone jack is via the hardware mute, which requires the Elgato Wave Link software (Windows/Mac only). ## Suggested implementation Add an `hpmute` command (similar to the existing `mute` command) that wraps the existing `set_hp_mute()` / `get_hp_mute()` methods: ``` wave3ctl hpmute Toggle headphone mute wave3ctl hpmute on|off Set headphone mute ``` The backend logic is already there in the `Wave3` class — it just needs a CLI entry point in `main()`. ## Environment - NixOS, PipeWire, kernel module loaded via `extraModulePackages` - Wave:3 firmware up to date - `wave3ctl discover` confirms Entity 5 mute control is accessible
x4ndr0m3d4x commented 2026-02-25 09:11:42 +00:00 (Migrated from github.com)

@thebrianbug I'll test this as soon as I can

@thebrianbug I'll test this as soon as I can
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
4ndr0m3d4/wave3ctl#1
No description provided.