65 lines
1.8 KiB
Bash
65 lines
1.8 KiB
Bash
|
#!/bin/sh
|
||
|
|
||
|
bluetooth_print() {
|
||
|
bluetoothctl | while read -r; do
|
||
|
if [ "$(systemctl is-active "bluetooth.service")" = "active" ]; then
|
||
|
if bluetoothctl show | grep -q "Powered: no"; then
|
||
|
echo " "
|
||
|
else
|
||
|
printf ' '
|
||
|
|
||
|
devices_paired=$(bluetoothctl devices Paired | grep Device | cut -d ' ' -f 2)
|
||
|
counter=0
|
||
|
|
||
|
for device in $devices_paired; do
|
||
|
device_info=$(bluetoothctl info "$device")
|
||
|
|
||
|
if echo "$device_info" | grep -q "Connected: yes"; then
|
||
|
device_alias=$(echo "$device_info" | grep "Alias" | cut -d ' ' -f 2-)
|
||
|
|
||
|
if [ $counter -gt 0 ]; then
|
||
|
printf ", %s" "$device_alias"
|
||
|
else
|
||
|
printf " %s" "$device_alias"
|
||
|
fi
|
||
|
|
||
|
counter=$((counter + 1))
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
printf '\n'
|
||
|
fi
|
||
|
else
|
||
|
echo " "
|
||
|
fi
|
||
|
done
|
||
|
}
|
||
|
|
||
|
bluetooth_toggle() {
|
||
|
if bluetoothctl show | grep -q "Powered: no"; then
|
||
|
bluetoothctl power on >> /dev/null
|
||
|
sleep 1
|
||
|
|
||
|
devices_paired=$(bluetoothctl devices Paired | grep Device | cut -d ' ' -f 2)
|
||
|
echo "$devices_paired" | while read -r line; do
|
||
|
bluetoothctl connect "$line" >> /dev/null
|
||
|
done
|
||
|
else
|
||
|
devices_paired=$(bluetoothctl devices Paired | grep Device | cut -d ' ' -f 2)
|
||
|
echo "$devices_paired" | while read -r line; do
|
||
|
bluetoothctl disconnect "$line" >> /dev/null
|
||
|
done
|
||
|
|
||
|
bluetoothctl power off >> /dev/null
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
case "$1" in
|
||
|
--toggle)
|
||
|
bluetooth_toggle
|
||
|
;;
|
||
|
*)
|
||
|
bluetooth_print
|
||
|
;;
|
||
|
esac
|