mirror of
https://github.com/CoolnsX/hyprdots.git
synced 2025-12-20 15:25:24 +05:30
48 lines
1.1 KiB
Bash
Executable File
48 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
remind() {
|
|
notify-send -i "$icon_dir/battery-010.svg" -h "string:x-canonical-private-synchronous:${0##*/}" "$1 % Battery $2, Please Plugin Charger!!" -u "$2"
|
|
}
|
|
|
|
print_sleep() {
|
|
[ -n "$4" ] && printf "Status: %s, Charge: %s,Next Check in %s seconds\n" "$3" "$2" "$1"
|
|
sleep "$1"
|
|
}
|
|
|
|
#declaration
|
|
battery="BAT0" #change accordingly
|
|
dir="/sys/class/power_supply/$battery/"
|
|
icon_dir="/usr/share/icons/Papirus/22x22/panel/" #change accordingly
|
|
i=0
|
|
status="normal"
|
|
|
|
#infinite loop
|
|
while charge=$(cat "$dir"/capacity); do
|
|
if [ "$(cat "$dir"/status)" = "Charging" ]; then
|
|
i=300 #default polling time, it's 5 minutes
|
|
else
|
|
case $charge in
|
|
[2-9][0-9] | 100)
|
|
i=300 # 5 minutes
|
|
status="normal"
|
|
;;
|
|
[1-2][0-9])
|
|
i=150 # 2.5 minutes
|
|
status="low"
|
|
;;
|
|
[5-9])
|
|
i=60 # every minute
|
|
status="critical"
|
|
;;
|
|
[0-4])
|
|
i=10 # every 10 seconds
|
|
status="critical"
|
|
;;
|
|
esac
|
|
|
|
# remind appropriately
|
|
[ "$status" != "normal" ] && remind "$charge" "$status"
|
|
fi
|
|
print_sleep "$i" "$charge" "$status" "$1" #pass 'log' as argument to print logs
|
|
done
|