2023-07-11 10:06:43 -04:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
for pid in $(pidof -x battery); do
|
|
|
|
if [ "$pid" != $$ ]; then
|
|
|
|
kill -9 "$pid"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
notify_icons="/home/q/.config/dunst/icons"
|
|
|
|
|
|
|
|
# notify when below this percentage
|
|
|
|
warning_level=30
|
|
|
|
# how often to check battery status, in seconds
|
|
|
|
check_interval=300
|
|
|
|
|
|
|
|
while true; do
|
|
|
|
path_to_battery=$(upower -e | grep BAT)
|
|
|
|
battery_level=$(upower -i "$path_to_battery" | grep -E "percentage" | sed 's/[^0-9]//g')
|
|
|
|
discharging=$(upower -i "$path_to_battery" | grep -E "state" | grep -c "discharging")
|
|
|
|
time_to_empty=$(upower -i "$path_to_battery" | grep -E "time to empty" | sed 's/[^0-9,.]//g')
|
|
|
|
|
|
|
|
# check if battery is low and discharging
|
|
|
|
if [ "$battery_level" -lt "$warning_level" ] && [ "$discharging" -eq 1 ]
|
|
|
|
then
|
|
|
|
dunstify -a "Battery" \
|
|
|
|
"Low battery: ${battery_level}%" \
|
|
|
|
"Battery is low ($time_to_empty hours left)" \
|
|
|
|
-r 100 \
|
|
|
|
-i "$notify_icons/battery-low.png"
|
2023-08-14 19:28:08 -04:00
|
|
|
mpv "/home/q/.config/alarm/low-battery-sound.mp3" > /dev/null 2>&1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$battery_level" -gt 80 ] && [ "$discharging" -eq 0 ]; then
|
|
|
|
dunstify -a "Battery" \
|
|
|
|
"Battery is charged: ${battery_level}%" \
|
|
|
|
-r 100 \
|
|
|
|
-i "$notify_icons/battery-charged.png"
|
2023-07-11 10:06:43 -04:00
|
|
|
fi
|
|
|
|
|
|
|
|
sleep ${check_interval}s
|
|
|
|
done
|