Setting source mute with pactl does not work, but toggling does
Version, Distribution, Desktop Environment:
Both 0.3.38 and git commit 75d76172 with systemd, no DE, on Gentoo configured with
bluetooth
doc
extra
pipewire-alsa
systemd
v4l
and without
echo-cancel
gstreamer
jack-client
jack-sdk -test
Description of Problem:
With no microphone present (only input being a monitor) pactl set-source-mute
only works for toggling, not setting an absolute value. Looks like it does not matter if I specify the source as an id (45 in my case, which works for get-source-mute
), 0
, or @DEFAULT_SOURCE@
.
How Reproducible:
100%
Steps to Reproduce:
- Make sure there is no microphone except sink monitors
- I set my internal audio card configuration to
Off
inpavucontrol
and connect my headphones, that way I only have one sink and the only source is a monitor of that sink. - I can do:
$ pactl set-source-mute 0 toggle
$ echo $?
0
$ pactl set-source-mute @DEFAULT_SOURCE@ toggle
$ echo $?
0
Actual Results:
$ pactl set-source-mute 0 0
Failure: No such entity
$ pactl set-source-mute 0 1
Failure: No such entity
$ pactl set-source-mute @DEFAULT_SOURCE@ 0
Failure: No such entity
$ pactl set-source-mute @DEFAULT_SOURCE@ 1
Failure: No such entity
Expected Results:
$ pactl set-source-mute 0 0
$ echo $?
0
$ pactl set-source-mute 0 1
$ echo $?
0
$ pactl set-source-mute @DEFAULT_SOURCE@ 0
$ echo $?
0
$ pactl set-source-mute @DEFAULT_SOURCE@ 1
$ echo $?
0
Additional Info Eg. pw-dump -N > file
(As Attachment Please):
pw-dump.txt
I tried to do some digging and found a similar issue: !1001 (merged) which only mentioned it for toggle
and I thought that's why it works. When not toggling there is a different function that gets called, but it looks like both result in get_default()
being called. Unfortunately I did not get any further as at that point I found out that it does not do this only with the default source, but with anything I specify.