From 45e5d7ef373c63771490316a7755e49aa3b03f92 Mon Sep 17 00:00:00 2001 From: Mollusk Date: Sat, 23 May 2026 21:15:45 -0400 Subject: [PATCH] feat(cli): remove --mic (microphone is out of scope) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pixelpass is a screen-share tool meant to be paired with a dedicated voice app (Mumble, TeamSpeak, Discord, …) for two-way talk — it never mixes a mic. The --mic flag was declared, shown in the host banner, and documented as working, but was never wired into the gst pipeline (a no-op). Removed the flag from Cli + HostOpts + into_host_opts, dropped it from the banner capture summary, and replaced the README's "--mic mixes the mic" claim with an explicit out-of-scope note. Co-Authored-By: Claude Opus 4.7 --- README.md | 20 ++++++++++---------- src/cli.rs | 6 ------ src/host/mod.rs | 3 --- 3 files changed, 10 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 5f5a63c..047ade4 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Working: - VAAPI H.264 encode in GStreamer (RDNA3 confirmed; other VAAPI-capable GPUs should work), with a software x264 fallback via `--no-hwencode` - Audio capture of the default sink's monitor, with optional per-app - routing (`--app `) and microphone mixing (`--mic`) + routing (`--app `) - `--repair` cleanup of orphaned PipeWire state left by a crashed host - iroh QUIC bi-stream tunnel, direct-UDP and relay paths both verified - Interactive Host/View menu with clipboard auto-copy and mpv/VLC picker @@ -190,16 +190,16 @@ measured_at = "2026-05-21T20:41:16Z" ## Audio By default pixelpass captures the default sink's monitor — the viewer -hears whatever the host hears. Two flags adjust this: +hears whatever the host hears. `--app ` narrows that to a single +application: pixelpass creates a per-PID null-sink and uses libpipewire to +reroute matching `Stream/Output/Audio` nodes (by `application.name`) into +it, so the viewer hears just that app instead of the whole desktop. In the +interactive menu you can pick the app from a list of what's currently +playing. -- `--app ` routes only a single application's audio. pixelpass - creates a per-PID null-sink and uses libpipewire to reroute matching - `Stream/Output/Audio` nodes (by `application.name`) into it, so the - viewer hears just that app instead of the whole desktop. In the - interactive menu you can pick the app from a list of what's currently - playing. -- `--mic` mixes the default microphone source into the stream alongside - system audio. +Microphone capture is intentionally out of scope — pixelpass is a +screen-share tool meant to be paired with a dedicated voice app (Mumble, +TeamSpeak, Discord, …) for two-way talk. If a host crashes mid-session it can leave orphaned `pixelpass_capture_*` null-sinks and their paired loopbacks loaded in PipeWire. Run diff --git a/src/cli.rs b/src/cli.rs index e29c2e8..9598c2a 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -21,10 +21,6 @@ pub struct Cli { #[arg(long, value_name = "NAME")] pub app: Option, - /// Mix in the default microphone source. - #[arg(long)] - pub mic: bool, - /// Override display server autodetection. #[arg(long, value_enum)] pub display_server: Option, @@ -79,7 +75,6 @@ pub enum DisplayServerArg { pub struct HostOpts { pub window: bool, pub app: Option, - pub mic: bool, pub display_server: Option, pub bitrate: u32, pub framerate: u32, @@ -99,7 +94,6 @@ impl Cli { HostOpts { window: self.window, app: self.app, - mic: self.mic, display_server: self.display_server, bitrate: self.bitrate, framerate: self.framerate, diff --git a/src/host/mod.rs b/src/host/mod.rs index 4a33956..549cfbd 100644 --- a/src/host/mod.rs +++ b/src/host/mod.rs @@ -342,8 +342,5 @@ fn capture_summary(opts: &HostOpts) -> String { } else { bits.push("system-audio".to_string()); } - if opts.mic { - bits.push("mic".to_string()); - } bits.join(" + ") }