Есть ли способ настроить Bluetooth в Ubuntu для автоматического подключения к устройствам, к которым он подключен, когда он включен. Кроме того, есть ли способ автоматически переключать вывод звука на гарнитуру Bluetooth при подключении?
источник
Есть ли способ настроить Bluetooth в Ubuntu для автоматического подключения к устройствам, к которым он подключен, когда он включен. Кроме того, есть ли способ автоматически переключать вывод звука на гарнитуру Bluetooth при подключении?
При редактировании /etc/pulse/default.pa
мы можем загрузить PulseAudio модуль модуль включения-подключения к AUTOCONNECT к звуковому раковине , как только он будет представлен PulseAudio звукового сервера. Нам нужно вставить следующую строку
load-module module-switch-on-connect
Устройства Bluetooth распознаются в PulseAudio, как только они появляются. Однако подключение необходимо выполнить вручную в настройках звука. Существует графический интерфейс, который позволяет одним щелчком мыши подключаться к устройствам BT ( stream2ip ).
Изменить: Начиная с версии 0.2.5 stream2ip позволяет автоматически подключаться к устройствам Bluetooth.
Редактировать: вы можете настроить ваше устройство bluez как устройство по умолчанию (например, с помощью pactl или в настройках конфигурации) с откатом к внутреннему аудио, если устройство Bluetooth отсутствует.
Изменить: Вот быстрый и грязный скрипт Python, чтобы дать вам представление о том, как сделать работу:
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#
# bt-autoconnect
# Autoconnects Bluetooth Devices to PulseAudio
# (c) Takkat Nebuk
# Licence: GPLv3
# usage:
# bt-autoconnect <MAC> <timeout>
import subprocess
import time
import sys
import string
cli_options = sys.argv
def main():
MAC = cli_options[1]
timeout = cli_options[2]
PMAC = string.replace(MAC,':','_') # PA don't know ':', needs '_'
pa_args = ['pacmd set-default-sink bluez_sink.' + PMAC]
bt_args = ['sdptool browse ' + MAC]
err = False
while err == False:
if subprocess.call(bt_args, shell=True) == 0:
err = subprocess.call(pa_args, shell=True)
time.sleep(int(timeout))
exit()
if __name__ == "__main__":
main()
Просто скопируйте этот скрипт и сохраните его как bt-autoconnect.py . Сделайте скрипт исполняемым или запустите его из командной строки (рекомендуется), cd /script/directory
а затем введите:
python bt-autoconnect.py [MAC] [timeout]
Замените MAC на MAC вашего устройства Bluetooth (например, 00: 0C: 78: 4F: B6: B5) и установите желаемое время ожидания (например, 10) в секундах, когда скрипт ищет устройство. Этот сценарий будет слушать данные MAC каждый тайм - аут секунды для устройства Bluetooth и соединяет его с PulseAudio , если присутствуют. Сценарий будет работать вечно, пока он не будет убит или виртуальный терминал не будет закрыт.
Иногда PulseAudio, кажется, не знает о том, что устройство снова присутствует после его выключения. С некоторой надеждой pulseaudio -k
заставляет это появиться снова.
Не модно, нет графического интерфейса, но, по крайней мере, в моих настройках он работал нормально.
Редактировать для тех, кто заинтересован: выпущен bt-autoconnect с графическим интерфейсом для удобной настройки. Пожалуйста, отправляйте туда сообщения об ошибках или предложения. Спасибо за тестирование.
sudo service pulseaudio restart
или перезагрузить компьютер, чтобы изменения вступили в силу.К сожалению, я только сейчас увидел ответ от Такката: «Кажется, это лучший способ, чем мой».
Я думаю, это все еще может быть актуально для Pulseaudio <1.0. Он не использует опрос, но прослушивает события Bluetooth на dbus:
источник