nixrice/.local/bin/menu-wpio
2024-02-20 21:10:52 -05:00

43 lines
1,010 B
Bash
Executable file

#!/bin/sh
# Simple rofi script for changing default audio sink
audio_info="$(wpctl status \
| awk '/Audio/,/Video/ {print}')"
case $1 in
sink)
section="$(echo "$audio_info" \
| awk '/Sinks:/,/Sink endpoints:/ {print}')"
;;
source)
section="$(echo "$audio_info" \
| awk '/Sources:/,/Source endpoints:/ {print}')"
;;
*)
echo "Aguments must be one of (sink|source)."
exit 1
;;
esac
devices_and_numbers="$(echo "$section" \
| tail -n +2 | head -n -2 | cut -c 10-)"
devices="$(echo "$devices_and_numbers" \
| awk -F'.' '{print $2}' \
| awk -F'[' '{print $1}' \
| cut -c 2-)"
lines="$(echo "$devices" | wc -l)"
chosen="$(echo "$devices" | fuzzel -l $lines --dmenu -p "Select audio $1:" -i)"
if [ -z "$chosen" ]; then
# Exited without selecting
exit
fi
number="$(echo "$devices_and_numbers" \
| grep "$chosen" \
| awk '{print $1}' \
| sed 's/\./ /')"
wpctl set-default $number