14 lines
628 B
Bash
Executable file
14 lines
628 B
Bash
Executable file
mapfile -t ids < <(wpctl status | sed -n '/Audio/,/Video/p' | sed -n '/├─ Sinks:/,/├─ Sources:/p' | tail -n +2 | head -n -2 | sed -r 's/^........//' | sed -r 's/\. .*//')
|
|
|
|
mapfile -t sinks < <(wpctl status | sed -n '/Audio/,/Video/p' | sed -n '/├─ Sinks:/,/├─ Sources:/p' | tail -n +2 | head -n -2 | sed -r 's/^........//' | sed -r 's/[0-9]+\. //')
|
|
|
|
count=${#ids[@]}
|
|
default=15
|
|
|
|
lines=$((count > default ? default : count))
|
|
|
|
a=$(printf '%s\n' "${sinks[@]}" | fuzzel --cache /dev/null --dmenu --index --lines $lines --placeholder "Switch audio source: " -I)
|
|
|
|
if [ -n "$a" ]; then
|
|
wpctl set-default ${ids[a]}
|
|
fi
|