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
Wtf is that screenshot
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 :)
If the UI always looks like that you’d huffed too much Compiz.
Pretty cool I just found it crazy that
A: nobody commented
B: you didnt mention the image at all
I thought I’d just slip it in and see what happened! I like making things in GIMP as well
Uh oh, you said the forbidden word. Won’t be long until everyone in this thread is “informed”.
What’s that? GIMP?
“Ricing”
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!
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.
It’s art is what it is
Doesn’t
alsamixer
work?Anyway, you may wanna try
pactl set-default-sink [sink-name]>
as welldoes gnome not have audio output switcher in the tray audio popup menu thingy?
Found it! I’d missed that - thanks!
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"
Amazing, thank you so much :)
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.
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.
Maybe try using pulsemixer. (if you have pulseaudio installed ofc)