#!/bin/bash CARDS=$(pacmd list-cards | grep -e index: -e alsa.card_name | xargs -n5 | awk '{print $2}') if [[ ${#CARDS} != 3 ]]; # there is a space then echo "This script works only with 2 outputs, and you have ..." pacmd list-cards | grep -e index: -e alsa.card_name | xargs -n5 exit fi i=1 for card_index in $CARDS ; do eval CARD$i=$card_index let i+=1 done LAST_SINK_LINE=$(pacmd list-sink-inputs | grep -e index: -e sink: | xargs -n5 | tail -n1) last_sink_app_index=$( echo $LAST_SINK_LINE | awk '{print $2}' ) last_sink_out_index=$( echo $LAST_SINK_LINE | awk '{print $4}' ) [[ ${last_sink_out_index} == ${CARD1} ]] && new_sink_out=$CARD2 || new_sink_out=$CARD1 #echo "$last_sink_app_index > $last_sink_out_index > ${new_sink_out}" pacmd move-sink-input ${last_sink_app_index} ${new_sink_out}