12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #!/usr/bin/env zsh
- local system_uname="$(uname)"
- if [[ "${system_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: \"${system_uname}\"" >&2
- exit 1
- fi
- function send_battery_warning {
- dunstify -p -t 0 "Low Battery" "Battery is at ${1}%!"
- }
- local did_notify=false
- let notify_id=-1
- while true; do
- let battery_percent="$(get_battery_percent)"
- if ((${battery_percent} > 10)) || is_adapted_connected; then
- did_notify=false
- if ((${notify_id} > 0)); then
- dunstify -C ${notify_id}
- notify_id=-1
- fi
- elif ! ${did_notify}; then
- did_notify=true
- notify_id="$(send_battery_warning ${battery_percent})"
- fi
- sleep 10
- done
|