#!/bin/bash # Crontab entry # */5 * * * * XDG_RUNTIME_DIR=/run/user/$(id -u) 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