aboutsummarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorVinny Meller2021-10-03 21:38:15 -0500
committerVinny Meller2021-10-03 21:38:15 -0500
commite2a87bfc1c1108a08a1fbbbc7287d95c4a3eb1f6 (patch)
tree672d6ce95ae94edf7319baa8fbc32a3a537e978d
downloadaur-e2a87bfc1c1108a08a1fbbbc7287d95c4a3eb1f6.tar.gz
pkg info
-rw-r--r--.SRCINFO12
-rw-r--r--PKGBUILD16
-rw-r--r--README.md12
-rwxr-xr-xpulseaudio-nextsink30
4 files changed, 70 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..a32ddd7d371b
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,12 @@
+pkgbase = pulseaudio-nextsink
+ pkgdesc = Swaps audio sink to the next in the list via pactl
+ pkgver = 1.0.0
+ pkgrel = 1
+ url = https://www.github.com/vinnymeller/pulseaudio-nextsink
+ arch = x86_64
+ depends = pulseaudio
+ depends = bash
+ source = pulseaudio-nextsink
+ sha512sums = 28840b89153bd72f9a0d1376c2165d782830f4a9817ce89d107850e76d29048f9b92436dca78829c36a535d3d31292312839e15ef087ef697da0d84517484210
+
+pkgname = pulseaudio-nextsink
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..eb484a1c7fb4
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,16 @@
+# Maintainer: Vinny Meller (vinnymeller@gmail.com)
+pkgname="pulseaudio-nextsink"
+pkgver="1.0.0"
+pkgrel="1"
+pkgdesc="Swaps audio sink to the next in the list via pactl"
+arch=("x86_64")
+url="https://www.github.com/vinnymeller/pulseaudio-nextsink"
+depends=('pulseaudio' 'bash')
+source=("pulseaudio-nextsink")
+sha512sums=("28840b89153bd72f9a0d1376c2165d782830f4a9817ce89d107850e76d29048f9b92436dca78829c36a535d3d31292312839e15ef087ef697da0d84517484210")
+
+package() {
+ mkdir -p "${pkgdir}/usr/bin"
+ cp "${srcdir}/pulseaudio-nextsink" "${pkgdir}/usr/bin/pulseaudio-nextsink"
+ chmod +x "${pkgdir}/usr/bin/pulseaudio-nextsink"
+}
diff --git a/README.md b/README.md
new file mode 100644
index 000000000000..795850c88d82
--- /dev/null
+++ b/README.md
@@ -0,0 +1,12 @@
+# pulseaudio-nextsink
+
+Each call to pulseaudio-nextsink iterates through the list of output sinks in pulseaudio via pactl
+
+Meant to be used with a hotkey daemon for easy access
+
+example sxhkd config I use with this:
+
+```
+alt + e ; a
+ pulseaudio-nextsink
+```
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