52
home/.bin/wattage
Executable file
52
home/.bin/wattage
Executable file
@@ -0,0 +1,52 @@
|
|||||||
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
|
source .utils
|
||||||
|
|
||||||
|
print_usage() {
|
||||||
|
blue "wattage - Show battery / charging status"
|
||||||
|
echo " "
|
||||||
|
underline "Usage:"
|
||||||
|
echo "wattage"
|
||||||
|
}
|
||||||
|
|
||||||
|
while test $# -gt 0; do
|
||||||
|
case "$1" in
|
||||||
|
-h|--help)
|
||||||
|
print_usage
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
info=$(ioreg -w 0 -f -r -c AppleSmartBattery)
|
||||||
|
vol=$(echo $info | /usr/bin/grep '"Voltage" = ' | /usr/bin/grep -oE '[0-9]+')
|
||||||
|
amp=$(echo $info | /usr/bin/grep '"Amperage" = ' | /usr/bin/grep -oE '[0-9]+')
|
||||||
|
amp=$(bc <<< "if ($amp >= 2^63) $amp - 2^64 else $amp")
|
||||||
|
wat="$(( (vol / 1000.0) * (amp / 1000.0) ))"
|
||||||
|
|
||||||
|
power_details=$(/usr/sbin/system_profiler SPPowerDataType -json | jq -c)
|
||||||
|
|
||||||
|
cable_connected=$(echo $power_details | jq -r '.SPPowerDataType[] | select(.sppower_battery_charger_connected) | .sppower_battery_charger_connected')
|
||||||
|
cable_wat=$(echo $power_details | jq -r '.SPPowerDataType[] | select(.sppower_ac_charger_watts) | .sppower_ac_charger_watts')
|
||||||
|
|
||||||
|
|
||||||
|
battery_current=$(echo $power_details | jq -r '.SPPowerDataType[] | select(.sppower_battery_charge_info) | .sppower_battery_charge_info.sppower_battery_state_of_charge')
|
||||||
|
battery_max=$(echo $power_details | jq -r '.SPPowerDataType[] | select(.sppower_battery_health_info) | .sppower_battery_health_info.sppower_battery_health_maximum_capacity')
|
||||||
|
|
||||||
|
printf "🔋 %.0f%% (max %s)\n" $battery_current $battery_max
|
||||||
|
|
||||||
|
if [[ "$cable_connected" == "FALSE" ]]; then
|
||||||
|
echo "🔌 No charger connected"
|
||||||
|
else
|
||||||
|
printf "🔌 Cable watts: %.0f W\n" $cable_wat
|
||||||
|
if [[ "$wat" -gt "0" ]]
|
||||||
|
then
|
||||||
|
printf "⚡️ Charging at: %.0f W\n" $wat
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$wat" -lt "0" ]]
|
||||||
|
then
|
||||||
|
printf "🪫 Discharging at: %.0f W\n" $wat
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user