feat(cli): remove --mic (microphone is 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 — 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 <noreply@anthropic.com>
This commit is contained in:
2026-05-23 21:15:45 -04:00
parent cd127a9704
commit 45e5d7ef37
3 changed files with 10 additions and 19 deletions
+10 -10
View File
@@ -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 <name>`) and microphone mixing (`--mic`)
routing (`--app <name>`)
- `--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 <name>` 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 <name>` 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
-6
View File
@@ -21,10 +21,6 @@ pub struct Cli {
#[arg(long, value_name = "NAME")]
pub app: Option<String>,
/// Mix in the default microphone source.
#[arg(long)]
pub mic: bool,
/// Override display server autodetection.
#[arg(long, value_enum)]
pub display_server: Option<DisplayServerArg>,
@@ -79,7 +75,6 @@ pub enum DisplayServerArg {
pub struct HostOpts {
pub window: bool,
pub app: Option<String>,
pub mic: bool,
pub display_server: Option<DisplayServerArg>,
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,
-3
View File
@@ -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(" + ")
}