Было бы здорово, если бы за меня это делала программа, но я полагаю, что bash-скрипт неизбежен. Однако, как человеку, который никогда не написал ни строчки кода на bash, мне, вероятно, понадобится много помощи. С чего начать?
Извините, у меня нет правильного ответа для Вас, но я могу предложить Вам следующую лучшую вещь:
Создайте переключатель к следующему приемнику аудиовыхода щелчком мыши.
Мотивация к решению:
Моя система имеет HDMI port+audio, панель аудио USB и зеленый аудио сокет. То, когда аудио USB выбрано, моя система не обнаруживает, когда аудиоразъем моих наушников (ООН), включилось. Таким образом, я не могу использовать аппаратные события и воздействовать на них.
Для этого я решил использовать pacmd; инструмент для управления аудиосистемой.
Это может использоваться в интерактивном режиме (pacmd) или с аргументами (pacmd - справка).
Краткое описание:
Сценарий и средство запуска на моей панели Xubuntu. Щелчок по средству запуска переключится к следующему приемнику аудиовыхода. Если какая-либо программа играет аудио, его приемник аудиовхода вызывается к выводу, снижают и уведомляют - отправляют, используется для информирования, какой приемник аудиовыхода активен.
Действия:
Количество аудиоустройств и их имен, вероятно, отличается в Вашей системе, таким образом, некоторые (незначительные) изменения в сценарии требуются. Комментарии я вставил сценарий (далее вниз) помогут настроить его.
Скопируйте и вставьте сценарий в файл под названием ToggleAudioOutput.
Сделайте это исполняемым файлом. Filemanager-> Rightclik-> Полномочия-> Галочка Позволяют...
В Терминале-> Каталог Изменения к местоположению файла.
$ chmod +x ToggleAudioOutput
Средство запуска на панели:
Щелкните правой кнопкой по панели->, Панель> Добавляет Новые Объекты-> Средство запуска.
Нажмите Add и Close.
Справа пустое средство запуска появляется; щелкните правой кнопкой по нему.
Свойства-> щелчок, маленький плюс
Имя: ToggleAudioOutput
Команда: просмотрите туда, где Вы хранили файл, и нажмите его
Значок: выберите хороший
Нажмите Create и Close
Щелкните правой кнопкой по средству запуска снова-> Перемещение это к приятному месту на панели.
Ссылка на рабочий стол:
Откройте File Manager и обзор к местоположению ToggleAudioOutput.
Щелкните правой кнопкой это-> Отправляет на Рабочий стол (создайте ссылку),
Сообщите мне если его полезное для Вас!
#!/bin/bash
# -- ToggleAudioOutput -- Script to change audio output sink.
#
# The script is based on the output of this command line.
# Of course the output varies per system. Copy & paste this command line
# in a terminal to find the number of devices and their names.
#
# $ pacmd list-sinks | grep -e 'index:' -e 'alsa.name' | awk 'NR%2{printf "%s",$0;next;}1'
# index: 0 alsa.name = "HDMI 0"
# * index: 1 alsa.name = "USB Audio"
# index: 2 alsa.name = "ALC662 rev3 Analog"
#
# Output sequence doesn't change except for the asterix (active device)
# and after (un)plugging usb audio devices. If your system has more or
# less devices, change the case statement accordingly.
##############################################################################
# Determine the current audio output sink, 0, 1 or 2.
OutputIndex=$(pacmd list-sinks | grep '\* index:' | awk '{ print $3 }')
# To force output to USB Audio add the command: ToggleAudioOutput 1
# in an entry in Session and Startup -> Application Autostart.
if [ "$1" == "1" ]
then OutputIndex=1; Name="USB Audio"
else
case $OutputIndex in
0) OutputIndex=1; Name="USB Audio"
;;
1) OutputIndex=2; Name="Speaker/Headphones"
;;
2) OutputIndex=0; Name="HDMI 0"
# I don't use HDMI audio, so delete this and the following line if needed.
OutputIndex=1; Name="USB Audio"
;;
esac
fi
##############################################################################
# Do the work...
pacmd set-default-sink $OutputIndex
notify-send "Audio output device set to: >$Name<" -t 5000
# Any programs playing audio? Force them to the current audio output sink.
for InputIndex in $(pacmd list-sink-inputs | grep 'index:' | awk '{print $2}')
do
pacmd move-sink-input $InputIndex $OutputIndex
done
##############################################################################
#EOF