summary refs log tree commit diff
path: root/bin/hibiki/soundswitch
diff options
context:
space:
mode:
Diffstat (limited to 'bin/hibiki/soundswitch')
-rwxr-xr-xbin/hibiki/soundswitch41
1 files changed, 41 insertions, 0 deletions
diff --git a/bin/hibiki/soundswitch b/bin/hibiki/soundswitch
new file mode 100755
index 0000000..9ba73c9
--- /dev/null
+++ b/bin/hibiki/soundswitch
@@ -0,0 +1,41 @@
+#!/bin/sh
+set -ex
+
+global=
+focused=
+profile=
+
+while getopts fgp: name; do
+	case $name in
+		g) global=1 ;;
+		f) focused=1 ;;
+		p) profile=1 ;;
+		?) printf "usage: %s [-gf]\n" "$0" >&2; exit 2 ;;
+	esac
+done
+
+if [ "$#" -lt 1 ]; then
+	printf "global\nfocused\nprofile\n" | menu | {
+		read -r line
+		case "${line}" in
+			global) exec "$0" -g ;;
+			focused) exec "$0" -f ;;
+			profile) exec "$0" -p ;;
+		esac
+	}
+fi
+
+if [ -n "${global}" ]; then
+	pactl list short sinks | awk '{print $2}' | menu | xargs pactl set-default-sink
+	exit 0
+fi
+
+if [ -n "${focused}" ]; then
+	printf "not implemented\n" >&2
+	exit 1
+fi
+
+if [ -n "${profile}" ]; then
+	printf "not implemented\n" >&2
+	exit 1
+fi