quickshell
quickshell copied to clipboard
Sleepy Pipewire
Quickshell's pipewire service gives current volume only after linking any node to the default sink node.
My quickshell version: quickshell pre-release, revision 67524f9d8e4ac5e09ea4427e11f2284e6a6f93fe, distributed by: Official-Nix-Flake. I use quickshell config from this repo: https://github.com/SirEthanator/Quickshell-WIP. Here is the snippet:
readonly property PwNode audioNode: Pipewire.defaultAudioSink;
PwObjectTracker { objects: [ root.audioNode ] }
readonly property int volume: Math.round(audioNode?.audio.volume * 100);
I start quickshell from niri's config spawn at startup. Then using commands like wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1 producing no updates on pipewire default Audio node status.
But when I connect something to default sink ports (launching pavucontrol, playing video using mpv, manually in helvum), setting volume gives expexted PwNode updates in quickshell.
Now at startup I run pw-loopback and kill it immediately, but I think that is just workaround for above unexpected behaviour.
If there any trace methods to find the root problem?
Can't reproduce this one, but your log might have enough information to work from. Can you send a .qslog file with the problem reproduced?
The log shows the node is bound and should be receiving volume changes. Does that set-volume actually do anything for you?
Yes. wpctl get-volume @DEFAULT_AUDIO_SINK@ gives desired number and volume is actually changing.
Was able to reproduce with source
95d0af8113394b1fdb71c94ac5160c83b8b829cb should fix it. Let me know if it doesn't.