29 lines
868 B
Bash
29 lines
868 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 --icon=" " --urgency=critical "Battery critical!" "${battery_charge}% 🪫"
|
|
sleep 120
|
|
elif [[ $battery_charge -eq 40 ]]; then
|
|
notify-send --replace-id=1 --icon=" " --urgency=normal "Battery low!" "${battery_charge}% 🪫" --expire-time=30000
|
|
sleep 240
|
|
fi
|
|
else
|
|
sleep 60
|
|
fi
|
|
done
|