dotfiles/battery_notice.sh
2025-01-10 10:08:08 +01:00

29 lines
846 B
Bash

#!/bin/bash
# Low battery notifier
# Kill already running processes
already_running="$(ps -fC 'grep' -N | grep 'battery_notice.sh' | wc -l)"
if [[ $already_running -gt 1 ]]; then
pkill -f --older 1 'battery_notice.sh'
fi
# Get path
path="$( dirname "$(readlink -f "$0")" )"
while [[ 0 -eq 0 ]]; do
battery_status="$(cat /sys/class/power_supply/BAT1/status)"
battery_charge="$(cat /sys/class/power_supply/BAT1/capacity)"
if [[ $battery_status == 'Discharging' && $battery_charge -le 40 ]]; then
if [[ $battery_charge -le 20 ]]; then
notify-send --replace-id=0 --urgency=critical "Battery critical!" "${battery_charge}% 🪫"
sleep 120
elif [[ $battery_charge -eq 40 ]]; then
notify-send --replace-id=1 --urgency=normal "Battery low!" "${battery_charge}% 🪫" --expire-time=30000
sleep 240
fi
else
sleep 20
fi
done