Select Audio Output Via Command Line
from Churbleyimyam@lemm.ee to linux@lemmy.ml on 02 Sep 2024 18:07
https://lemm.ee/post/41267056

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

#linux

threaded - newest

BaalInvoker@lemmy.eco.br on 02 Sep 2024 18:37 next collapse

Doesn’t alsamixer work?

Anyway, you may wanna try pactl set-default-sink [sink-name]> as well

Rentlar@lemmy.ca on 02 Sep 2024 19:24 next collapse

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 on 02 Sep 2024 20:31 collapse

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 on 02 Sep 2024 19:25 next collapse

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.

kusivittula@sopuli.xyz on 02 Sep 2024 20:12 next collapse

does gnome not have audio output switcher in the tray audio popup menu thingy?

BlackEco@lemmy.blackeco.com on 02 Sep 2024 20:37 next collapse

It does for a few versions now, and even before there was at least one extension adding this feature.

Churbleyimyam@lemm.ee on 02 Sep 2024 21:21 collapse

Found it! I’d missed that - thanks!

boredsquirrel@slrpnk.net on 02 Sep 2024 20:18 next collapse

Wtf is that screenshot

Churbleyimyam@lemm.ee on 02 Sep 2024 20:45 next collapse

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 :)

Rentlar@lemmy.ca on 02 Sep 2024 20:49 next collapse

If the UI always looks like that you’d huffed too much Compiz.

Zozano@lemy.lol on 02 Sep 2024 21:34 next collapse

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

Churbleyimyam@lemm.ee on 03 Sep 2024 09:17 collapse

What’s that? GIMP?

Zozano@lemy.lol on 03 Sep 2024 09:46 collapse

“Ricing”

Churbleyimyam@lemm.ee on 03 Sep 2024 10:19 collapse

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 on 03 Sep 2024 11:05 collapse

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.

boredsquirrel@slrpnk.net on 03 Sep 2024 06:55 collapse

Pretty cool I just found it crazy that

A: nobody commented

B: you didnt mention the image at all

Churbleyimyam@lemm.ee on 03 Sep 2024 10:12 collapse

I thought I’d just slip it in and see what happened! I like making things in GIMP as well

fossphi@lemm.ee on 02 Sep 2024 21:40 collapse

It’s art is what it is

prousername@lemmy.ml on 02 Sep 2024 21:52 next collapse

Maybe try using pulsemixer. (if you have pulseaudio installed ofc)

wuphysics87@lemmy.ml on 03 Sep 2024 04:35 next collapse

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 on 03 Sep 2024 07:46 collapse

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"
Churbleyimyam@lemm.ee on 03 Sep 2024 09:20 collapse

Amazing, thank you so much :)