Skip to content

Instantly share code, notes, and snippets.

Last active August 10, 2022 08:30
  • Star 12 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
What would you like to do?
Choose pulseaudio sink via rofi/dmenu
# choose pulseaudio sink via rofi or dmenu
# changes default sink and moves all streams to that sink
sink=$(ponymix -t sink list|awk '/^sink/ {s=$1" "$2;getline;gsub(/^ +/,"",$0);print s" "$0}'|rofi -dmenu -p 'pulseaudio sink:' -location 6 -width 100|grep -Po '[0-9]+(?=:)') &&
# alternate version using dmenu:
# sink=$(ponymix -t sink list|awk '/^sink/ {s=$1" "$2;getline;gsub(/^ +/,"",$0);print s" "$0}'|dmenu -p 'pulseaudio sink:'|grep -Po '[0-9]+(?=:)') &&
ponymix set-default -d $sink &&
for input in $(ponymix list -t sink-input|grep -Po '[0-9]+(?=:)');do
echo "$input -> $sink"
ponymix -t sink-input -d $input move $sink
Copy link

needs ponymix and rofi (or dmenu) installed

Copy link

sentriz commented Jul 14, 2016

this is great, thank you

Copy link

zeltak commented Aug 19, 2016

Hi this is sweet. how does one choose a specific stream to send to a sink? ie if i have both mpd and youtube playing currently it moves both streams?



Copy link

Nervengift commented Mar 5, 2017

huh, I didn't see that last comment but for reference: this script moves all streams to the selected sink.

To send streams to different outputs, I prefer pavucontrol.

Copy link

What is the license of this code? Can I create a package out of it?

Copy link

Sure, use is however you want. Haven't used this in a while myself, so no guarantees.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment