Tabii ki Appleti kullanarak cihazları değiştirmek de iyi çalışıyor. Ama senaryo yazmanın en güzel yanı, süper hızlı olmasıdır. Örneğin, benim klavye kısayolu alt + s’a koydum. böylece kulaklıklardan hoparlörlere geçmek istediğimde, sadece alt + s tuşlarına basmam gerekiyor.
Neyse. Andrew dedi ki:
İkiden fazla ses cihazınız varsa ve bir
farklı bir, bazı 7 ile mantık değiştirmek gerekir
koşul.
Ben de öyle yaptım. Birinin sorun yaşadığı durumlarda onu paylaşıyorum:
#!/usr/bin/env bash
#sinks=($(pacmd list-sinks | grep index | \
# awk '{ if ( == "*") print "1",; else print "0", }'))
sinks=($(pacmd list-sinks | grep index | \
awk '{ if ( == "*") print "1"; else print "0" }'))
inputs=($(pacmd list-sink-inputs | grep index | awk '{print }'))
#find active sink
active=0
for i in ${sinks[*]}
do
if [ $i -eq 0 ]
then active=$((active+1))
else break
fi
done
#switch to next sink
swap=$(((active+1)%${#sinks[@]}))
pacmd set-default-sink $swap &> /dev/null
for i in ${inputs[*]}; do pacmd move-sink-input $i $swap &> /dev/null; done
Farklı bir şekilde yaptığım şey, a) aktif havuzu bir döngü içinde bulmaktır. Ve b) indeksi 1 ile artırarak bir sonraki lavaboya geçin. Sonra sonucu, lavabo sayısını değiştiriyorum. Bu, örn. 3 lavabo olduğunda, (2 + 1)% 3 = 0. Böylece, sink indeksinden 2, sink indeksine 0 geçecektik.
Bu şekilde, anahtar mevcut lavabolardan yukarı doğru hareket etmeyi sağlar.