Как сделать так, чтобы Ubuntu автоматически выбрал микрофон гарнитуры в качестве входа по умолчанию?

Это кажется настолько очевидным, что я немного шокирован, что это нужно спросить. Я подключаю гарнитуру к разъему 3,5 мм на моем ноутбуке с Ubuntu и ожидаю, что она будет работать. Вывод действительно "просто работает". Однако мне приходится каждый раз вручную выбирать микрофон гарнитуры в качестве входа по умолчанию. Как мне сказать Ubuntu, чтобы она вела себя как любая другая ОС настольного компьютера / ноутбука, когда к нему подключена гарнитура?

Изменить: при обновлении до последней версии gnome каждый раз, когда я подключаю гарнитуру, появляется диалоговое окно с вопросом, что было подключено. Однако выбор «гарнитуры» по-прежнему приводит к тому, что устройство ввода не изменяется.

Правка №2: Чтобы прояснить ситуацию и повторить мой комментарий ниже, с диалоговым окном все в порядке, если он работает, а это не так.

2
задан 25 January 2019 в 01:36

2 ответа

Почему это не работает

Моя система, Kubuntu 19.10 на Dell XPS 13 9350, обнаруживает наушники и автоматически устанавливает правильный выход.

Насколько я знаю, он не знает, есть ли у гарнитуры микрофон или нет. Вот почему он изменяет только вывод, а не ввод.

Как заставить это работать

Вот как автоматически переключать микрофон при подключении/отключении:

acpi_listen — это инструмент для определения при подключении/отключении гарнитуры. Вот что он обнаруживает:

jack/headphone HEADPHONE unplug
jack/headphone HEADPHONE plug

pulseaudio здесь мы можем переключить исходные порты

В моей системе для выбора микрофона гарнитуры:

pacmd set-source-port alsa_input.pci-0000_00_1f.3.analog-stereo analog-input-headset-mic

Чтобы выбрать внутренний микрофон:

pacmd set-source-port alsa_input.pci-0000_00_1f.3.analog-stereo analog-input-internal-mic

Вы можете использовать ]pacmd list-cards, чтобы получить список имен источников и имен портов.
Вы также можете использовать функцию автозаполнения терминала, чтобы помочь в создании команд.

Теперь соберем все вместе:

Переключитесь на root с помощью sudo su и создайте скрипт /etc/acpi/headset-microphone.sh

#!/bin/sh
export PULSE_RUNTIME_PATH="/run/user/1000/pulse/"
if [ "$1" = plug ]; then
  sudo -u you -E pacmd set-source-port alsa_input.pci-0000_00_1f.3.analog-stereo analog-input-headset-mic
else
  sudo -u you -E pacmd set-source-port alsa_input.pci-0000_00_1f.3.analog-stereo analog-input-internal-mic
fi

обязательно:

  • измените вас на свое имя пользователя
  • замените источник и порты pulseaudio на свои значения
  • сделайте скрипт исполняемым, chmod a+x /etc/acpi/headset-microphone.sh

затем создайте прослушиватель событий, создав файл «/etc/acpi/events/headset-microphone-plug»:

event=jack/headphone HEADPHONE plug
action=/etc/acpi/headset-microphone.sh plug

и прослушиватель событий отключения, создав файл «/etc/acpi/events/headset- микрофон-отключить’:

event=jack/headphone HEADPHONE unplug
action=/etc/acpi/headset-microphone.sh unplug

и, наконец, перезапустить службу событий прослушивания acpi

systemctl restart acpid.service
10
ответ дан 22 April 2020 в 16:54

Спустя годы, наконец, расширение gnome для спасения наших жизней

https://extensions.gnome.org/extension/1482/remove-audio-device-selection-dialog/

-1
ответ дан 13 August 2020 в 12:52

Другие вопросы по тегам:

Похожие вопросы: