1 | #!/bin/bash
|
2 |
|
3 | function battery_charge() {
|
4 | local battery_path="/sys/class/power_supply/BAT1/"
|
5 | local curcap
|
6 | local maxcap
|
7 | BATT_PCT=99
|
8 | case $(uname -s) in
|
9 | "Darwin")
|
10 | if ((pmset_on)) && command -v pmset &>/dev/null; then
|
11 | if [ "$(pmset -g batt | grep -o 'AC Power')" ]; then
|
12 | BATT_CONNECTED=1
|
13 | else
|
14 | BATT_CONNECTED=0
|
15 | fi
|
16 | BATT_PCT=$(pmset -g batt | grep -o '[0-9]*%' | tr -d %)
|
17 | else
|
18 | while read key value; do
|
19 | case $key in
|
20 | "MaxCapacity")
|
21 | maxcap=$value
|
22 | ;;
|
23 | "CurrentCapacity")
|
24 | curcap=$value
|
25 | ;;
|
26 | "ExternalConnected")
|
27 | if [ $value == "No" ]; then
|
28 | BATT_CONNECTED=0
|
29 | else
|
30 | BATT_CONNECTED=1
|
31 | fi
|
32 | ;;
|
33 | esac
|
34 | if [[ -n "$maxcap" && -n $curcap ]]; then
|
35 | BATT_PCT=$[100 * $curcap / $maxcap]
|
36 | fi
|
37 | done < <(ioreg -n AppleSmartBattery -r | grep -o '"[^"]*" = [^ ]*' | sed -e 's/= //g' -e 's/"//g' | sort)
|
38 | fi
|
39 | ;;
|
40 | "Linux")
|
41 | case $(cat /etc/*-release) in
|
42 | *"Arch Linux"*|*"Ubuntu"*|*"openSUSE"*)
|
43 | BATT_PCT=$(cat $battery_path/capacity 2>/dev/null || echo "100")
|
44 | battery_state=$(cat $battery_path/status 2>/dev/null || echo "Charging")
|
45 | ;;
|
46 | *)
|
47 | BATT_PCT=$(cat $battery_path/capacity 2>/dev/null || echo "100")
|
48 | battery_state=$(cat $battery_path/status 2>/dev/null || echo "Charging")
|
49 | ;;
|
50 | esac
|
51 | if [ $battery_state == 'Discharging' ]; then
|
52 | BATT_CONNECTED=0
|
53 | else
|
54 | BATT_CONNECTED=1
|
55 | fi
|
56 | BATTERY_STATE=$battery_state
|
57 | ;;
|
58 | esac
|
59 | }
|
60 |
|
61 | battery_charge
|