Automatically switch sound output device to Bluetooth headset & force to A2DP profile on connection

bluetoothpulseaudio

Using Mint 17 + MATE here. My bluetooth headset (Plantronics Backbeat Go2) is connected just fine with my system, but there are several manual steps I have to take to make this work that I would very much like to have automated:

  1. After every reboot I have to run pactl load-module module-bluetooth-discover in the terminal to get the device to connect at all. I tried putting this in a shell script to run on start up, but no dice 🙁
  2. My headset connects automatically with no issues, but it always defaults to Telephony Duplex or even Off instead of A2DP; I've tried and failed with several different strategies to force A2DP 🙁
  3. Force the BT headset to be the default output device. Tried several strategies here, too… unfortunately every time I connect the headset the index from pacmd seems to change, so I can't force a default in the PA conf file set-default-sink that way. And using the listed name doesn't seem to work either – if the headset is not present, it switches to the speakers and doesn't switch back if the headset connects 🙁

Thanks for any advice you might have on resolving these issues!

Best Answer

The first problem occurs because Pulse Audio unloads the bluetooth module after startup, so even if you put it in your startup script, it still gets unloaded a few seconds later.

  • Solution A

    Just add a startup delay in your script, something like:

    sleep 10 && pactl load-module module-bluetooth-discover
    
  • Solution B (recommended)

    1. Disable the bluetooth/Pulse Audio plugin.
    2. Right click your bluetooth icon, select Plugins, then uncheck the Pulse Audio plugin.
    3. Restart.

Sorry, but I don't have a solution for your remaining two issues.

Related Question