Skip to content

Commit ca060f3

Browse files
i3p9dehesa
authored andcommitted
add: add battery info script command
1 parent 988bae4 commit ca060f3

File tree

1 file changed

+93
-0
lines changed

1 file changed

+93
-0
lines changed

commands/system/battery-info.sh

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
#!/bin/bash
2+
3+
# Required parameters:
4+
# @raycast.schemaVersion 1
5+
# @raycast.title Battery Info
6+
# @raycast.mode inline
7+
# @raycast.refreshTime 1s
8+
# @raycast.packageName System
9+
10+
#
11+
# Optional parameters:
12+
# @raycast.icon 🔋
13+
#
14+
# Documentation:
15+
# @raycast.description Get Battery percentage, time remaining, charge status, charger wattage, total cycles etc.
16+
# @raycast.author Fahim Faisal
17+
# @raycast.authorURL https://github.com/i3p9
18+
19+
BATT_PERCENTAGE=$(pmset -g batt | grep "InternalBattery-0" | awk '{print $3}')
20+
CHARGE_STATUS=$(pmset -g batt | grep "InternalBattery-0" | awk '{print $4}')
21+
TIME_REMAINING=$(pmset -g batt | grep "InternalBattery-0" | awk '{print $5}')
22+
CYCLE_COUNT=$(system_profiler SPPowerDataType | grep "Cycle Count" | awk '{print $3}')
23+
CHARGE_WATT=$(pmset -g ac | grep "Wattage" | awk '{print $3}')
24+
25+
BATT=${BATT_PERCENTAGE%??}
26+
27+
if [[ "$CHARGE_STATUS" == "charging;" ]]; then
28+
#Charging
29+
if [[ "$TIME_REMAINING" == "(no" ]]; then
30+
TO_SHOW="${BATT}% - No Estimation Yet (Charging at ${CHARGE_WATT}) - ${CYCLE_COUNT} Cycles"
31+
echo $TO_SHOW
32+
else
33+
if [[ "$TIME_REMAINING" != "(no" ]]; then
34+
RE_MIN=${TIME_REMAINING##*:}
35+
RE_HOUR=${TIME_REMAINING%%:*}
36+
if [[ "$RE_HOUR" == "0" ]]; then
37+
TIME_REMAINING_FORMATTED="${RE_MIN}m"
38+
else
39+
TIME_REMAINING_FORMATTED="${RE_HOUR}h ${RE_MIN}m"
40+
fi
41+
fi
42+
TO_SHOW="${BATT}% - ${TIME_REMAINING_FORMATTED} to Full (Charging at ${CHARGE_WATT}) - ${CYCLE_COUNT} Cycles"
43+
echo $TO_SHOW
44+
fi
45+
elif [[ "$CHARGE_STATUS" == "finishing" ]]; then
46+
#Finishing Charning, xx:xx time remaining
47+
TIME_REMAINING=$(pmset -g batt | grep "InternalBattery-0" | awk '{print $6}')
48+
RE_MIN=${TIME_REMAINING##*:}
49+
RE_HOUR=${TIME_REMAINING%%:*}
50+
if [[ "$RE_HOUR" == "0" ]]; then
51+
if [[ "$RE_MIN" == "00" ]]; then
52+
FULLY_CHARGED_FLAG="TRUE"
53+
fi
54+
TIME_REMAINING_FORMATTED="${RE_MIN}m"
55+
else
56+
TIME_REMAINING_FORMATTED="${RE_HOUR}h ${RE_MIN}m"
57+
fi
58+
59+
if [[ "$TIME_REMAINING" == "(no" ]]; then
60+
TO_SHOW="${BATT}% - No Estimation Yet (Charging at ${CHARGE_WATT}) - ${CYCLE_COUNT} Cycles"
61+
echo $TO_SHOW
62+
elif [[ "$FULLY_CHARGED_FLAG" = "TRUE" ]]; then
63+
TO_SHOW="${BATT}% - Fully Charged (Power Connected at ${CHARGE_WATT}) - ${CYCLE_COUNT} Cycles"
64+
echo $TO_SHOW
65+
else
66+
TO_SHOW="${BATT}% - ${TIME_REMAINING_FORMATTED} to Full (Charging at ${CHARGE_WATT}) - ${CYCLE_COUNT} Cycles"
67+
echo $TO_SHOW
68+
fi
69+
70+
elif [[ "$CHARGE_STATUS" == "charged;" ]]; then
71+
#Fully charged
72+
TO_SHOW="${BATT}% - Fully Charged (Power Connected at ${CHARGE_WATT}) - ${CYCLE_COUNT} Cycles"
73+
echo $TO_SHOW
74+
75+
elif [[ "$CHARGE_STATUS" == "discharging;" ]]; then
76+
#Discharging
77+
if [[ "$TIME_REMAINING" == "(no" ]]; then
78+
TO_SHOW="${BATT}% - No Estimation Yet - ${CYCLE_COUNT} Cycles"
79+
echo $TO_SHOW
80+
else
81+
if [[ "$TIME_REMAINING" != "(no" ]]; then
82+
RE_MIN=${TIME_REMAINING##*:}
83+
RE_HOUR=${TIME_REMAINING%%:*}
84+
if [[ "$RE_HOUR" == "0" ]]; then
85+
TIME_REMAINING_FORMATTED="${RE_MIN}m"
86+
else
87+
TIME_REMAINING_FORMATTED="${RE_HOUR}h ${RE_MIN}m"
88+
fi
89+
fi
90+
TO_SHOW="${BATT}% - ${TIME_REMAINING_FORMATTED} Remaining - ${CYCLE_COUNT} Cycles"
91+
echo $TO_SHOW
92+
fi
93+
fi

0 commit comments

Comments
 (0)