dotfiles/_suckless/_scripts/dmenu-audio

27 lines
939 B
Bash
Executable File

#!/bin/sh
set_output() {
sinks=$(pactl list sinks | awk -F':' '/Description:/ {print $2}')
sel_sink=$(printf "$sinks" | dmenu -l 10 -i -p "select sink")
echo pactl set-default-sink $(pactl list sinks | grep -B 1 "$sel_sink" | awk -F':' '/Name:/ {print $2}')
kill -46 $(pidof dwmblocks)
}
set_input() {
sources=$(pactl list sources | grep -v 'Monitor of ' | awk -F':' '/Description:/ {print $2}')
sel_source=$(printf "$sources" | dmenu -l 10 -i -p "select source")
echo pactl set-default-source $(pactl list sources | grep -B 1 "$sel_source" | awk -F':' '/Name:/ {print $2}')
kill -46 $(pidof dwmblocks)
}
sinks=$(pactl list sinks | awk -F':' '/Description:/ {print $2}')
[ "$(echo "$sinks" | wc -l)" -lt 2 ] &&
{ notify-send "🔊 Only one sink detected."; exit; }
chosen=$(printf "output\\ninput" | dmenu -i -p "select type")
case "$chosen" in
output) set_output ;;
input) set_input ;;
*) exit 1 ;;
esac