#!/bin/sh select_output() { listofdevices=$(wpctl status | awk '/Sinks:/{flag=1; next} /^ ├─/{flag=0} flag { line=$0 gsub(/^ *[│├─]* */,"",line) # nuke leading garbage print line }' | sed 's/ \[vol: [^]]*\]//g' | rg -v '^$' | sed 's/[[:space:]]\+$//') device=$( printf "%s" "$listofdevices" | mew -l 10 | awk '{match($0,/[0-9]+/); print substr($0,RSTART,RLENGTH)}') wpctl set-default $device && notify-send "$(printf "%s" "$listofdevices" | rg $device) is now default output device" && exit 0 notify-send "Something went wrong" } select_input() { listofdevices=$(wpctl status | awk '/Sources:/{flag=1; next} /^ ├─/{flag=0} flag { line=$0 gsub(/^ *[│├─]* */,"",line) # nuke leading garbage print line }' | sed 's/ \[vol: [^]]*\]//g' | rg -v '^$' | sed 's/[[:space:]]\+$//') device=$( printf "%s" "$listofdevices" | mew -l 10 | awk '{match($0,/[0-9]+/); print substr($0,RSTART,RLENGTH)}') wpctl set-default $device && notify-send "$(printf "%s" "$listofdevices" | rg $device) is now default input device" && exit 0 notify-send "Something went wrong" } choice=$1 # choice=$(printf "input\noutput" | mew -l 2 -p "Output or input devices?") case "$choice" in "input") select_input ;; "output") select_output ;; *) exit 1 ;; esac