Last active
April 26, 2024 14:14
-
-
Save egelev/2e6b57d5a8ba62cf6df6fff2878c3fd4 to your computer and use it in GitHub Desktop.
Connect bluetooth headphones on Ubuntu 18.04
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
function get_headphones_index() { | |
echo $(pacmd list-cards | grep bluez_card -B1 | grep index | awk '{print $2}') | |
} | |
function get_headphones_mac_address() { | |
local temp=$(pacmd list-cards | grep bluez_card -C20 | grep 'device.string' | cut -d' ' -f 3) | |
temp="${temp%\"}" | |
temp="${temp#\"}" | |
echo "${temp}" | |
} | |
function _control_bluethoot_headphones() { | |
local op=${1} | |
local hp_mac=${2} | |
echo -e "${op} ${hp_mac}\n quit" | bluetoothctl | |
} | |
function disconnect_bluetooth_headphones() { | |
local hp_mac=${1} | |
_control_bluethoot_headphones "disconnect" ${hp_mac} | |
} | |
function connect_bluetooth_headphones() { | |
local hp_mac=${1} | |
_control_bluethoot_headphones "connect" ${hp_mac} | |
} | |
function _set_headphones_profile() { | |
local profile=${1} | |
pacmd set-card-profile $(get_headphones_index) ${profile} | |
} | |
function set_headphones_profile_a2dp_sink() { | |
_set_headphones_profile "a2dp_sink" | |
echo "Bluethoot headphones a2dp_sink" | |
} | |
function set_headphones_profile_off() { | |
_set_headphones_profile "off" | |
echo "Bluethoot headphones profile off" | |
} | |
function main() { | |
local hp_mac=$(get_headphones_mac_address) | |
set_headphones_profile_off | |
sleep 2s | |
disconnect_bluetooth_headphones ${hp_mac} | |
sleep 6s | |
connect_bluetooth_headphones ${hp_mac} | |
sleep 3s | |
set_headphones_profile_a2dp_sink | |
} | |
main |
Thank you very much for this - worked perfectly out of the box with my Bose QCII Headset on Ubuntu 22.04.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I'm glad it is still useful :).