#!/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 to."; exit; } chosen=$(printf "output\\ninput" | dmenu -i -p "change") case "$chosen" in output) set_output ;; input) set_input ;; *) exit 1 ;; esac