dotfiles/_suckless/_scripts/dmenu-audio

26 lines
838 B
Bash
Executable File

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