#!/bin/bash option=$(echo -e "Connect\nDisconnect\nChange profile\nReset pulseaudio"| dmenu -p "Do you wish to connect/disconnect or change soundprofile of your bluetooth device:") #Prereq: trust the MAC address #MAC="11:11:22:ED:08:AD" MAC="76:67:11:36:64:A2" case $option in "Connect") status=$(systemctl status bluetooth | grep Active | cut -d " " -f 7) case $status in "active") bluetoothctl power on && bluetoothctl connect $MAC && sleep 2 && [ $(bluetoothctl info $MAC|grep "Connected"|awk -F'[:][ ]' '/^[^#]/{print $2}') == "yes" ] && notify-send "Connected" "Bluetooth Device is connected" || notify-send "Unable to connect!" "Check whether the bluetooth device is switched on.";; "inactive" | "failed") sudo -A systemctl start bluetooth #st -e sudo systemctl start bluetooth && notify-send "Bluetooth daemon is running" bluetoothctl power on bluetoothctl connect $MAC && sleep 1 && [ $(bluetoothctl info $MAC|grep "Connected"|awk -F'[:][ ]' '/^[^#]/{print $2}') == "yes" ] && notify-send "Connected" "Bluetooth Device is connected" || notify-send "Unable to connect!" "Check whether the bluetooth device is switched on."; esac;; "Disconnect") bluetoothctl power off && sudo -A systemctl stop bluetooth notify-send "Disconnected" "Bluetooth Device is disconnected" || notify-send "Unable to disconnect!" ;; "Change profile") past_profile=$(pactl list | grep "Active Profile" | sed '2p;d' | cut -d ' ' -f 3) profile=$(echo -e "a2dp_sink(pure audio output)\nhandsfree_head_unit(inferior audio output + mic enable)" | dmenu -p "Choose the profile for your sound card") cardindex=$(pacmd list-cards | grep 'index' | awk 'NR==2' | cut -d ' ' -f6) case $profile in "a2dp_sink(pure audio output)") pactl set-card-profile $cardindex a2dp_sink && dunstify "Switched card profile from $past_profile to $profile" -i audio-headphones;; "handsfree_head_unit(inferior audio output + mic enable)") pactl set-card-profile $cardindex handsfree_head_unit notify-send "Switched card profile from $past_profile to $profile" -i audio-headset;; esac;; "Reset pulseaudio") ##check for a2dp sink not found error in status command pulseaudio --kill && pulseaudio --cleanup-shm && pulseaudio --start;; esac