-
Notifications
You must be signed in to change notification settings - Fork 339
/
Copy pathsystem-bluetooth-bluetoothctl.sh
77 lines (64 loc) · 2.56 KB
/
system-bluetooth-bluetoothctl.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/bin/sh
bluetooth_print() {
bluetoothctl | grep --line-buffered 'Device\|#' | while read -r REPLY; do
if [ "$(systemctl is-active "bluetooth.service")" = "active" ]; then
printf '#1'
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_output=$(echo "$device_info" | grep "Alias" | cut -d ' ' -f 2-)
device_battery_percent=$(echo "$device_info" | grep "Battery Percentage" | awk -F'[()]' '{print $2}')
if [ -n "$device_battery_percent" ]; then
if [ "$device_battery_percent" -gt 90 ]; then
device_battery_icon="#25"
elif [ "$device_battery_percent" -gt 60 ]; then
device_battery_icon="#24"
elif [ "$device_battery_percent" -gt 35 ]; then
device_battery_icon="#23"
elif [ "$device_battery_percent" -gt 10 ]; then
device_battery_icon="#22"
else
device_battery_icon="#21"
fi
device_output="$device_output $device_battery_icon $device_battery_percent%"
fi
if [ $counter -gt 0 ]; then
printf ", %s" "$device_output"
else
printf " %s" "$device_output"
fi
counter=$((counter + 1))
fi
done
printf '\n'
else
echo "#2"
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