Как я могу переключаться между различными аппаратными средствами вывода звука с помощью оболочки?
Я использую свой ноутбук с внешним монитором с динамиками. Когда монитор подключен через HDMI, я могу переключиться (используя GUI: Sound Setting -> Аппаратное обеспечение) между обычным аудиовыходом ноутбука и выходом монитора.
Я повторяю эту процедуру много времени, и я начал задаваться вопросом, могу ли я ее автоматизировать или, во всяком случае, выполнить ее быстрее, используя оболочку.
Мой дистрибутив - Ubuntu 12.04 с gnome 3.
EDIT:
Я пробовал использовать pacmd, но list-sinks дает мне только устройство, которое я сейчас использую:
pacmd list-sinks | grep name:
name: <alsa_output.pci-0000_00_1b.0.hdmi-stereo>
После перехода из GUI:
pacmd list-sinks | grep name:
name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
И если я попытаюсь изменить его, я получаю:
pacmd set-default-sink alsa_output.pci-0000_00_1b.0.hdmi-stereo
Welcome to PulseAudio! Use "help" for usage information.
Sink alsa_output.pci-0000_00_1b.0.hdmi-stereo does not exist.
4 ответа
Вы можете использовать pactl
, прочитать его справочную страницу для получения дополнительной информации.
Сценарий python Lukas ( https://github.com/lkettenb/sound-output-switcher , выше), чтобы реализовать апплет-уведомление, хорошо работает. Ему нужен пакет appindicator. Это можно установить с помощью
sudo apt-get install python-appindicator
Вы можете попробовать этот скрипт: https://github.com/Гинер /helplinux /дерево /мастер /скрипты /включение звука
Протестировано на Ubuntu 10.04 - 13.04 и Arch Linux
Как я сказал здесь (вероятно, дубликат), альтернативу Индикатор звукового переключателя (который требует добавления PPA):
В одной строке
В моем случае был профиль hdmi-stereo-extra1+input
, поэтому в одной строке: [[ $(pacmd list-cards | grep "active profile" | cut -d " " -f 3-) = "<output:hdmi-stereo-extra1+input:analog-stereo>" ]] && pacmd set-card-profile 0 "output:analog-stereo+input:analog-stereo" || pacmd set-card-profile 0 "output:hdmi-stereo-extra1+input:analog-stereo"
Вы можете использовать специальный ярлык для выполните его с помощью bash -c
(предупредит вас, если есть конфликт с другим ярлыком):