I am using plasma-pa for the first time and I've noticed that it is missing a feature. I can't move with it a playback stream from one sink to an other one e.g. from Analog Stereo to HDMI or vice versa. So the question is, do they plan adding that?
The positive thing about it is that I learnt some basic pacmd / pactl commands. Example:
$ pactl list short sinks
0 alsa_output.pci-0000_00_03.0.hdmi-stereo-extra2 module-alsa-card.c s16le 2ch 44100Hz RUNNING
1 alsa_output.pci-0000_00_1b.0.analog-stereo module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
$pacmd list-sink-inputs | grep index
index: 5
$pacmd move-sink-input 5 1
$ pactl list short sinks
0 alsa_output.pci-0000_00_03.0.hdmi-stereo-extra2 module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
1 alsa_output.pci-0000_00_1b.0.analog-stereo module-alsa-card.c s16le 2ch 44100Hz RUNNING
And I also found a useful script that finds the next sink and switches to it. I made a .desktop/launcher and it's just a click.
#!/bin/bash
declare -i sinks=(`pacmd list-sinks | sed -n -e 's/\**index:\(\)/\1/p'`)
declare -i sinks_count=${#sinks}
declare -i active_sink_index=`pacmd list-sinks | sed -n -e 's/\*index:\(\)/\1/p'`
declare -i next_sink_index=${sinks}
#find the next sink (not always the next index number)
declare -i ord=0
while ;
do
echo ${sinks}
if [ ${sinks ; then
next_sink_index=${sinks}
break
fi
let ord++
done
#change the default sink
pacmd "set-default-sink ${next_sink_index}"
#move all inputs to the new sink
for app in $(pacmd list-sink-inputs | sed -n -e 's/index:\(\)/\1/p');
do
pacmd "move-sink-input $app $next_sink_index"
done
#display notification
declare -i ndx=0
pacmd list-sinks | sed -n -e 's/device.description="\(.*\)"/\1/p' | while read line;
do
if ; then
notify-send -i notification-audio-volume-high --hint=string-canonical-private-synchronous: "Sound output switched to" "$line"
exit
fi
let ndx++
done;
So now I'm not dependent on pavucontrol at least.