dotfiles/.config/cron/battery_notifier.sh

33 lines
826 B
Bash
Raw Permalink Normal View History

#!/bin/bash
# Crontab entry
# */5 * * * * XDG_RUNTIME_DIR=/run/user/$(id -u) <path to script>
battery_level=$(acpi -b | grep -P -o -m1 "[0-9]+(?=%)")
charging_state=$(acpi -b | grep -P -o -m1 "([A-Z])\w+,")
# If laptop is charging, do not make further tests
if [ $charging_state = "Charging," ] && [ ! -f /tmp/charge_done ]
then
if [ $battery_level -ge 100 ]
then
/usr/bin/notify-send "Charge completed" "The battery reached 100% charge."
touch /tmp/charge_done
exit
fi
fi
rm -f /tmp/charge_done
if [ $battery_level -le 5 ]
then
/usr/bin/notify-send "Battery level critical" "Battery level critically low, plug to avoid shutdown" --urgency=critical
exit
fi
if [ $battery_level -le 15 ]
then
/usr/bin/notify-send "Battery low" "Battery level dropped under 15%"
exit
fi