Как следует из названия, есть ли способ сопоставить горячие клавиши для переключения туда, куда направляется звук? Я хочу, чтобы сделать ctrl + page up, чтобы переключиться на звуковую карту USB, и ctrl + page down, чтобы переключиться на встроенную на моей материнской плате. Таким образом, я мог быстро переключаться между использованием наушников и динамика. Я знаю, что могу установить выходной приемник по умолчанию с pulseaudio, но для меня это кажется очень странным. Кажется, что независимо от того, что я делаю, звук направляется на USB-ЦАП, пока он включен. Я попытался использовать pacmd move-sink-input, но в нем просто говорится, что «с этим индексом не найден сток», хотя я дал ему правильное число в соответствии со списком-приемниками pacmd.
Я наконец понял это! Вероятно, вам потребуется изменить часть «grep -v» в строках 3 и 4 в зависимости от ваших приемников (и использовать egrep -v «sink1 | sink2 | sink3», чтобы исключить несколько приемников). Чтобы запустить скрипт: bash (не sh) / path / to / script [-headphones, -speaker]. Я установил пользовательские привязки клавиш в меню настроек, которые запускают скрипт с разными аргументами.
Код:
#!/bin/bash
headphonesIndex=$(pacmd list-sinks | grep -v "usb" | grep -B 1 "name:" | tr -d "[[:space:]]" | cut -c 7)
speakerIndex=$(pacmd list-sinks | grep -v "pci" | grep -B 1 "name:" | tr -d "[[:space:]]" | cut -c 7)
if [ "$1" = "-headphones" ]; then
newOutput="headphones"
newOutputIndex=$headphonesIndex
elif [ "$1" = "-speaker" ]; then
newOutputIndex=$speakerIndex
else
echo "Invalid argument. Valid arguments are \"-headphones\" and \"-speaker\"."
exit
fi
playbackStreams=$(pacmd list-sink-inputs | grep "index" | cut -c 12-)
readarray -t playbackStreams <<<"$playbackStreams"
if [ "$playbackStreams" = "" ]; then
pacmd set-default-sink $newOutputIndex
else
for stream in "${playbackStreams[@]}"
do
pacmd move-sink-input $stream $newOutputIndex
done
pacmd set-default-sink $newOutputIndex
fi
Pastebin: http://pastebin.com/Ah3kdiei
Загрузить: http://pastebin.com / загрузки / Ah3kdiei