Files
dotfiles/env/.local/scripts/hypr/battery-monitor

33 lines
902 B
Bash
Executable File

#!/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