Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- set -e
- is_next=false
- is_prev=false
- if test "$1" = "next"; then
- is_next=true
- fi
- if test "$1" = "prev"; then
- is_prev=true
- fi
- if ! $is_next && ! $is_prev; then
- is_next=true
- fi
- pacmd list-sinks | fgrep ' index: ' | {
- index=0
- cur_pos=0
- declare sinks[0]
- while read -r line; do
- index=$((index+1))
- echo "$line" | fgrep -q '*' && cur_pos=$index
- sinks[$index]=$(echo "$line"|awk '{print $NF}')
- done
- # we are forced to continue here, or we lose the vars
- len="${#sinks[@]}"
- if test $len -le 0; then
- echo "no sinks!"
- exit 1
- fi
- if $is_next; then
- if test $cur_pos -ge $len; then
- new_pos=1
- else
- new_pos=$((cur_pos+1))
- fi
- fi
- if $is_prev; then
- if test $cur_pos -le 1; then
- new_pos=$len
- else
- new_pos=$((cur_pos-1))
- fi
- fi
- if test $new_pos -eq $cur_pos; then
- echo "nothing to do (only 1 sink?)"
- exit 0
- fi
- new_idx="${sinks[$new_pos]}"
- echo "Switching to $new_pos, pulse index $new_idx"
- pacmd set-default-sink $new_idx
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement