Does anyone know how I can select my audio output via the command line? I'm frequently switching between using my monitors inbuilt speakers and a USB audio interface and I'm finding it laborious to navigiggerate graphically through the settings in GNOME to do so.
What I'd like to do is set up a couple of bash aliases and do it in my terminal.
I've written a bash script i'm using daily, maybe you can adapt it to your needs. I'm using pipewire-pulse. It's probably not perfect but it does the job:
#!/usr/bin/env bash
DEVICE=$1
# read input, parse list of available sinks (outputs)
if [ "$DEVICE" = "pc" ]
then
OUTPUT=($(pactl list short sinks | awk '{print $2}' | grep -i -E 'hdmi|samson|Targus' -v))
elif [ "$DEVICE" = "tv" ]
then
OUTPUT=($(pactl list short sinks | awk '{print $2}' | grep -i -E 'hdmi'))
else
echo "No valid input (must be either 'pc' or 'tv')"
exit -1
fi
# get all currently connected streams
INPUTS=($(pactl list short sink-inputs | awk '{print $1}'))
# change default sink (for new audio outputs)
pactl set-default-sink $OUTPUT
# switch sink for existing audio outputs
for i in "${INPUTS[@]}"
do
pactl move-sink-input $i $OUTPUT
done
# use notify-send to send a visual notification to the user that the sink changed
notify-send -c info "Default sink changed" "Changed default sink and sink-inputs to $OUTPUT"
gets you a list of devices with a numerical identifier. And
pactl set-default-sink ID
Sets the default sink to the desired ID. I only ever want to swap between two so I wrots a bash script to do that. I just type 'aud' and it does it for me.
Pactl commands will do what I think you want, I keep forgetting the exact syntax. Once you find something that works, you can bind those commands to some key combos to easily switch
The hard part is finding a stable identifier, instead of "this interface is know as sink 48 at this exact instant. It will be a completely different number tomorrow. It might even be a potato emoji, who knows?"
That depends on which audio system you're running.
Since this can vary depending on your distro, the easiest place to look for that info is going to be your distro's documentation. That documentation may also include instructions for how to accomplish exactly what you want.