SIGN IN SIGN UP

Wake the Asahi mic mapper on PipeWire events instead of polling (#403)

--watch re-ran pw-dump and several pactl queries every 2 s, which kept
pipewire, pipewire-pulse and wireplumber awake around the clock: 14.2%
of a core on an idle M1 Max, 0.3% after. supervise() now sleeps on
pactl subscribe and repairs when a sink, source, card or module appears
or vanishes, a card or module changes, or the server does. Stream,
client and sink/source change events are ignored; bursts settle for
0.5 s with a 5 s cap; a 10-minute backstop keeps eventual consistency.
A lost subscription repairs once and resubscribes after 2 s. SIGTERM
unwinds through supervise so the subscriber exits with the service.


Claude-Session: https://claude.ai/code/session_01WHvo2RfghRcv7UoqFntuM9

Co-authored-by: Skyler <schoosskyler@gmail.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Naeem Malik <malik2015naeem@gmail.com>
S
Skyler committed
458042ba7fd43e2b8dffb8edac0c940e62c7ee1d
Parent: 93f29ab
Committed by GitHub <noreply@github.com> on 9/12/2026, 9:33:26 AM