AvengeMedia / AvengeMedia/DankMaterialShell

Media volume controls can get out of sync and duplicate web player streams are shown

Open
#2,435 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
QML
Stars
8.1k
Forks
515
Avg merge
1d 8h
Merged PRs (30d)
102

Description

### Summary

When playing music from a Firefox web music player, DMS exposes multiple volume controls for what appears to be the same effective playback volume, but the controls do not stay in sync. The same web player can also appear multiple times in the Control Center Playback list.

### What I observed

- A Firefox web music player (NetEase Cloud Music web player) appears twice under Control Center -> Audio Devices -> Playback.
- The rows are shown as something like:
- `Firefox: `
- `Firefox: AudioStream`
- The `AudioStream` row changes the effective playback volume.
- The web player's own volume slider and DMS media volume controls can also affect the effective playback volume.
- However, these controls do not update each other live. For example, changing one volume slider changes the audio output, but the other DMS/UI volume indicators can keep showing stale values until interacted with/refreshed.

This makes it look like several controls are writing into the same underlying Firefox/media volume path, but they are reading from different state sources or only partially bound.

### System-level details from testing

While reproducing this, PipeWire/Pulse showed multiple Firefox output streams for the same web player:

```text
Sink Input #587
application.name = Firefox
media.name = NetEase Cloud Music / 网易云音乐
media.class = Stream/Output/Audio

Sink Input #611
application.name = Firefox
media.name = NetEase Cloud Music / 网易云音乐
media.class = Stream/Output/Audio
```

Firefox also exposed an MPRIS player:

```text
org.mpris.MediaPlayer2.firefox...
org.mpris.MediaPlayer2.Player Volume
```

Changing the Firefox/MPRIS player volume changed the effective playback volume and one of the PipeWire stream volumes, but DMS controls bound to the PipeWire stream list and controls bound to MPRIS did not stay synchronized.

### Expected behavior

- A single web music player should ideally be represented as one logical playback volume entry in DMS, or duplicate/auxiliary streams should be clearly filtered/grouped.
- DMS media volume controls and Playback stream volume controls should stay in sync when they refer to the same effective media playback volume.

### Environment

- DMS: v1.4.6
- Quickshell: 0.3.0
- PipeWire: 1.6.5
- WirePlumber: 0.5.14
- Browser: Firefox 150.0.3
- DMS package: `dms-shell 1.4.6-1`

Contributor guide

Open the contributing guide

Research direction

No source files or tests are named. Start by tracing the Control Center Playback list and DMS media volume bindings, then compare the PipeWire stream and MPRIS sources described in the report. Done means duplicate Firefox playback entries are handled clearly and related volume controls remain synchronized.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.