aboutsummarylogtreecommitdiffstats
path: root/pulseaudio-nextsink
diff options
context:
space:
mode:
authorVinny Meller2021-10-03 21:38:15 -0500
committerVinny Meller2021-10-03 21:38:15 -0500
commite2a87bfc1c1108a08a1fbbbc7287d95c4a3eb1f6 (patch)
tree672d6ce95ae94edf7319baa8fbc32a3a537e978d /pulseaudio-nextsink
downloadaur-e2a87bfc1c1108a08a1fbbbc7287d95c4a3eb1f6.tar.gz
pkg info
Diffstat (limited to 'pulseaudio-nextsink')
-rwxr-xr-xpulseaudio-nextsink30
1 files changed, 30 insertions, 0 deletions
diff --git a/pulseaudio-nextsink b/pulseaudio-nextsink
new file mode 100755
index 000000000000..14494d5f1f43
--- /dev/null
+++ b/pulseaudio-nextsink
@@ -0,0 +1,30 @@
+#!/bin/bash
+# Iterates through the list of available sinks from pactl
+# Made to be used with a hotkey to quickly swap between outputs. Therefore takes no inputs.
+
+default_sink_line=$(pactl list short sinks | grep $(pactl get-default-sink))
+default_sink_arr=( $default_sink_line )
+default_sink_num=${default_sink_arr[0]} # The number of the currently default sink. Not using the whole line because they can change frequently
+
+readarray -t sink_names <<<"$(pactl list short sinks)"
+last_sink_active=false
+for sink_name in "${sink_names[@]}"
+do
+ sink_arr=( $sink_name )
+ sink_num=${sink_arr[0]}
+ if [ "$last_sink_active" = true ]; then
+ pactl set-default-sink $sink_num
+ echo "Set pulse default sink to number $sink_num"
+ exit 0
+ fi
+ if [ "$default_sink_num" = "$sink_num" ]; then
+ last_sink_active=true
+ fi
+done
+# If never got to 1 past the currently active sink in the loop, sets sink to first in the list
+first_sink=${sink_names[0]}
+first_sink_arr=( $first_sink )
+first_sink_num=${first_sink_arr[0]}
+pactl set-default-sink $first_sink_num
+echo "Set pulse default sink to number $first_sink_num"
+exit 0