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

    • Churbleyimyam@lemm.eeOP
      link
      fedilink
      arrow-up
      29
      ·
      2 months ago

      I’ve been ricing my GNOME DE.

      Only joking. I had a bit of fun in GIMP for to illustrate this post. You’re welcome to use it if you want :)

      • Zozano@lemy.lol
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        2
        ·
        edit-2
        2 months ago

        Uh oh, you said the forbidden word. Won’t be long until everyone in this thread is “informed”.

            • Churbleyimyam@lemm.eeOP
              link
              fedilink
              arrow-up
              2
              ·
              2 months ago

              OK, I’m guessing that term has some extra baggage around here which I’m not privy to… I spent too many years chopping wood and growing corn, so someone will have to fill me in!

              • Zozano@lemy.lol
                link
                fedilink
                English
                arrow-up
                3
                arrow-down
                1
                ·
                edit-2
                2 months ago

                Oh no, you’re going to make me be that guy lol.

                Ricing comes from “rice cooker”, meaning a Japanese car. The term is so far removed from any racial implications now, that some people say RICE means “Race Inspired Cosmetic Enhancements”, though it’s just an excuse where one need not exist.

                I regularly see people brigade for others to stop saying it, even though the word now exists on its own. People treat it like it’s comparable to something like the Washington “Redskins”, it isn’t.

  • jan75@lemmy.ml
    link
    fedilink
    arrow-up
    8
    ·
    2 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"
    
  • wuphysics87@lemmy.ml
    link
    fedilink
    arrow-up
    5
    ·
    2 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.

  • Rentlar@lemmy.ca
    link
    fedilink
    arrow-up
    4
    ·
    2 months ago

    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

    • rotopenguin@infosec.pub
      link
      fedilink
      English
      arrow-up
      6
      ·
      2 months ago

      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?”

  • Thurstylark@lemm.ee
    link
    fedilink
    English
    arrow-up
    3
    ·
    2 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.