random-scripts/battery-notify.sh

36 lines
935 B
Bash
Executable File

#!/usr/bin/env zsh
if [[ "$(uname)" = 'Linux' ]]; then
let charge_full="$(cat '/sys/class/power_supply/BAT0/charge_full')."
function get_battery_percent {
let charge_now="$(cat '/sys/class/power_supply/BAT0/charge_now')."
printf '%.0f' "$((charge_now / charge_full * 100))"
}
function is_adapted_connected {
let connected="$(cat /sys/class/power_supply/ADP1/online)"
((${connected} == 1))
}
# Linux ends here
else
echo "${0}: error: unknown os: \"$(uname)\"" >&2
exit 1
fi
function send_battery_warning {
notify-send -t 0 "Low Battery" "Battery is at ${1}%!"
}
local did_notify=false
while true; do
let battery_percent="$(get_battery_percent)"
if ((${battery_percent} > 10)) || is_adapted_connected; then
did_notify=false
elif ! ${did_notify}; then
did_notify=true
send_battery_warning ${battery_percent}
fi
sleep 10
done