여러 활성 입력 스트림에 대한 싱크를 변경할 수 있도록 일종의 가상 싱크 또는 소스 그룹을 설정하고 싶습니다. 지금까지 나는 모든 입력 스트림을 기본 소스로 설정하기 위해 다음 스크립트를 사용해 왔습니다.
#!/bin/bash
pacmd set-default-sink "$1"
pacmd list-sink-inputs | grep index | while read input
do
pacmd move-sink-input "${input##* }" "$1"
done
또는 입력을 마지막 기본 수신기로 이동하세요.
#!/bin/bash
pacmd list-sinks |
grep -e "* index:" |
tr -dc "[:digit:]\n" |
{
read old_sink
pacmd set-default-sink "$1"
pacmd list-sink-inputs |
grep -e "index:" -e "sink:" |
grep -B 1 -e "sink: $old_sink" |
grep -e "index:" |
tr -dc "[:digit:]\n" |
while read i
do
pacmd move-sink-input "$i" "$1"
done
}
그러나 이것은 내 요구에 맞지 않습니다. 유사한 솔루션 하나의 대상 싱크를 가리키는 모든 입력 스트림이 다른 대상 싱크로 이동하기를 원한다고 가정해 보겠습니다. 다음 동작을 제공하는 솔루션을 원합니다.
# previous state
sourceA -> (virtualSink -> sinkA)
sourceB -> (virtualSink -> sinkA)
sourceC -> sinkA
$ set-sink (virtualSink -> sinkB)
sourceA -> (virtualSink -> sinkB)
sourceB -> (virtualSink -> sinkB)
sourceC -> sinkA
이상적으로는 set-sink
모든 활성 입력 스트림이 새 싱크로 이동되지만 지정된 입력 스트림을 반복하는 것은 virtualSink
완벽하게 허용됩니다.