Feature request: Widget (or similar) for configuring Pipewire source volume
Feature Description
Currently there is no way (that I could find at least) to configure the volume on a per-application level. If I want to do that, I have to open another program like pavucontrol. I think it would be nice if this could be done directly in the shell.
Use Case
Sometimes I want to lower the volume of just one application, for example when it's too loud compared to another application.
Compositor
Is this feature specific to one compositor?
- [x] All compositors
- [ ] niri
- [ ] Hyprland
- [ ] dwl (MangoWC)
- [ ] sway
Proposed Solution
I can imagine either a new widget on the bar or even in the control center. I was thinking something like this (excuse my extremely bad mockup skills 😅):
Alternatives/Existing Solutions
pavucontrol
I was thinking about this too (and would be willing to implement it). I saw that there was #801 which uses Mpris instead of pipewire for per app, but as noted in the PR, some sources do not implement the full Mpris spec notably firefox does not allow volume control.
This makes me think we should use pipewire to control source volumes instead. It would be nice if we could match each Mpris source to their respective Pipewire source, because if we could match them, then we could move to using Pipewire alone to control volume. I am not sure if we have a reliable way to do so though. I will try and look more to see what data we have.
If we can't match them up maybe the MediaPlayerTab's volume control can stay Mpris based and we have a separate Pipewire widget. ¯\(ツ)/¯
@bbedward thoughts on this and are we safe in assuming all users use pipewire?
Only pipe wire yea, nothing else is supported (and I'm not interested in supporting pulse audio)
After updating to 1.0.0 I saw that this feature got added in the control center and it works pretty well for me (also for Firefox), so I'll close this for now. Thanks for adding this ^^