#!/bin/zsh # Used with the systemd battery monitor service and timer to alert # when the battery has dropped below the threshold and is not currently # charging. THRESHOLD=20 # Notify when below 20% NOTIFICATION_FLAG="/run/user/${UID}/user_battery_notified" function get-battery-percentage() { local battery=$(upower --battery | grep percentage) echo "${battery//[^0-9]/}" } function send-battery-alert() { notify-send -u critical \ "Recharge battery!" "Batttery is down to ${1}" \ -i battery-caution \ -t 30000 } battery_percentage=$(get-battery-percentage) battery_state=$(upower --battery | grep -E state | awk '{print $2}') if [[ "$battery_state" == "discharging" && "$battery_percentage" -le "$THRESHOLD" ]]; then if [ ! -f "$NOTIFICATION_FLAG" ]; then send-battery-alert "$battery_percentage" touch "$NOTIFICATION_FLAG" fi else rm -f "$NOTIFICATION_FLAG" fi