35 lines
1.2 KiB
Bash
Executable File
35 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env zsh
|
|
LC_CTYPE="en_US.UTF-8"
|
|
set -x
|
|
charging_status () {
|
|
cat /sys/class/power_supply/BAT0/status
|
|
}
|
|
|
|
battery_percentage () {
|
|
ibam --percentbattery | grep -Pom 1 '\d{1,3}'
|
|
}
|
|
|
|
if [[ "$(charging_status)" == "Charging" ]] && \
|
|
[[ $(battery_percentage) -gt 5 ]] && \
|
|
[[ -f /run/user/${UID}/battery_low ]]; then
|
|
logger "Power reconnected and above 5 percent, clearing nofication state."
|
|
rm /run/user/${UID}/battery_low
|
|
for id in $(dunstctl history | jq '.data[0][] | select(.summary.data == "LOW BATTERY!")| .id.data' \
|
|
| tee /tmp/dunst_history.json); do
|
|
dunstify --close=${id}
|
|
done
|
|
elif [[ "$(charging_status)" == "Discharging" ]] && \
|
|
[[ $(battery_percentage) -le 5 ]] && \
|
|
[[ ! ( -f /run/user/${UID}/battery_low ) ]] ; then
|
|
logger "Low power! Triggering notification...."
|
|
dunstify --urgency=critical \
|
|
--icon=/usr/share/icons/breeze-dark/emblems/16/emblem-warning.svg \
|
|
'LOW BATTERY!' \
|
|
'Battery level is low, plug power quick!'
|
|
touch /run/user/${UID}/battery_low
|
|
fi
|
|
|
|
set +x
|
|
# vim: ft=zsh
|
|
|