Omahub
← All plugins
C

Autoduck

by CostaFot

Automatically mutes background browser music (e.g. a YouTube tab) while another browser tab plays audio, and unmutes it when that audio stops.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
0228997
Scanned
1 month ago

No potentially dangerous behavior detected in the analyzed commit.

Automated analysis only — not a security guarantee.

AI advisory review

No obvious issues detected

Language-model assessment · ~deepseek/deepseek-v4-flash-latest — advisory only

None
AI risk level
None
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
0228997
Reviewed
1 month ago

The plugin only monitors PipeWire browser audio streams and mutes/unmutes them based on loudness, with no install-time commands, network access, credential handling, or destructive operations. The code is straightforward QML and matches the documented behavior. No meaningful risk to the user's system or data was found.

How this check works

This review combines the deterministic scan (the rule-based results above) with an independent look at the plugin's code by a language model. The model reads a trimmed sample of the repository's files, the manifest, and the README, then gives a plain-language risk level and a recommendation: install (no notable danger), review (look closer first), or avoid (clearly dangerous).

It runs on the same analyzed commit as the deterministic scan and is strictly advisory — it is not a security guarantee and never blocks a plugin by itself. A human moderator still reviews plugins before they are listed.

AI advisory only — automated analysis, not a security guarantee.

Install
$ omarchy plugin add https://github.com/CostaFot/omarchy-autoduck --enable
Desktop #bar #quickshell #media

Autoduck

<img src="assets/duck.png" width="200" alt="the enforcer">

An Omarchy shell plugin that mutes your background browser music while another browser tab plays audio, and unmutes it when that audio stops. Music in a YouTube tab, you click a video on X — the music mutes itself within a second, and comes back a few seconds after the video ends.

Works only for browser audio.

Install

omarchy plugin add https://github.com/CostaFot/omarchy-autoduck --enable

A duck icon appears in the bar: highlighted while ducked, dimmed when disabled. Click it to toggle.

Remove with omarchy plugin remove costafot.autoduck.

CLI

omarchy-shell autoduck status   # {"enabled":true,"ducked":false,...}
omarchy-shell autoduck toggle   # also: enable / disable
omarchy-shell autoduck reset    # unstick: clear all state, unmute everything

Configuration

Properties at the top of Service.qml (restart the shell to apply — omarchy-restart-shell):

  • browserApps — which application.names count as browsers.
  • peakThreshold — loudness above which a stream counts as playing (0.01).
  • silenceMs — quiet time before music resumes (2500 ms).
  • stopConfirmMs — resume delay after the other streams cork/close (800 ms).
  • duckConfirmMs — sound must stay loud this long to duck, so pings and hover previews don't trigger (250 ms).
  • resumeHoldMs — extra resume delay while other streams still linger, bridging the gap between videos (600 ms).
  • reduckGraceMs — new sound this soon after a resume re-ducks instantly (2000 ms).
  • musicAdoptMs — window after the music stream vanishes in which a new stream is adopted as the music (30 000 ms).

Limitations

  • The oldest browser stream is assumed to be your music: start music for the first time while a video is already playing and the video gets muted instead. (Pausing and resuming music is fine — it re-attaches as music.)
  • Manually unmuting ducked music is respected: ducking stands down until the interrupting sound has stopped.
  • Music is muted, not paused — the track keeps advancing silently.
  • A video that goes fully silent for longer than silenceMs briefly brings the music back.