AvengeMedia / AvengeMedia/DankMaterialShell
Media volume controls can get out of sync and duplicate web player streams are shown
- 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
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