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.

What's the best way for me to do that?

Many thanks

  • wuphysics87@lemmy.ml
    ·
    3 months ago

    pactl get short sinks

    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.

  • jan75@lemmy.ml
    ·
    3 months ago

    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"
    
  • Thurstylark@lemm.ee
    ·
    3 months ago

    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.