#!/bin/sh

for battery in /sys/class/power_supply/BAT?
do
	capacity=$(cat "$battery"/capacity 2>/dev/null) || break
	status=$(sed "s/[Dd]ischarging/DC/;s/[Nn]ot charging//;s/[Cc]harging/C/;s/[Uu]nknown//;s/[Ff]ull//" "$battery"/status)

	if [ -f /tmp/acstat ] && [ $(find /tmp/acstat -mmin 0.02) ] && [ $(cat /tmp/acstat) = "1" ]; then
        dunstify -a center --timeout=1500 -i "$pOS_NOTIF_IMG_DIR/battery-charge.png" ""
    fi

	if [ "$capacity" -le 20 ]; then
		[ ! -f /tmp/batstat ] || [ $( cat /tmp/batstat ) -ne "20" ] && [ $status = "DC" ] && echo 20 > /tmp/batstat && dunstify -r 5 -a top-center -u critical "" "BATTERY CRITICAL <20%" && systemctl --user start battery-low
	elif [ "$capacity" -le 10 ]; then
		[ ! -f /tmp/batstat ] || [ $( cat /tmp/batstat ) -ne "10" ] && [ $status = "DC" ] && echo 10 > /tmp/batstat && dunstify -r 5 -a top-center -u critical "" "BATTERY CRITICAL <10%"
	elif [ "$capacity" -le 5 ]; then
		[ ! -f /tmp/batstat ] || [ $( cat /tmp/batstat ) -ne "5" ] && [ $status = "DC" ] && echo 5 > /tmp/batstat && dunstify -r 5 -a top-center -u critical "" "BATTERY CRITICAL!! <5%" && systemctl --user start battery-low
	fi

	if [ $status = "DC" ]; then
		case 1 in
			$(( $capacity <= 10 ))) status="" ;;
			$(( $capacity <= 20 ))) status="" ;;
			$(( $capacity <= 30 ))) status="" ;;
			$(( $capacity <= 40 ))) status="" ;;
			$(( $capacity <= 50 ))) status="" ;;
			$(( $capacity <= 60 ))) status="" ;;
			$(( $capacity <= 70 ))) status="" ;;
			$(( $capacity <= 80 ))) status="" ;;
			$(( $capacity <= 90 ))) status="" ;;
			 				     *) status="" ;;
		 esac
	elif [ $status = "C" ]; then
		case 1 in
			$(( $capacity <= 10 ))) status="" ;;
			$(( $capacity <= 20 ))) status="" ;;
			$(( $capacity <= 30 ))) status="" ;;
			$(( $capacity <= 40 ))) status="" ;;
			$(( $capacity <= 50 ))) status="" ;;
			$(( $capacity <= 60 ))) status="" ;;
			$(( $capacity <= 70 ))) status="" ;;
			$(( $capacity <= 80 ))) status="" ;;
			$(( $capacity <= 90 ))) status="" ;;
								 *)	status="" ;;
		 esac
	fi

	printf "%s%s%s%% " "$status " "$warn" "$capacity"
	unset warn

done | sed 's/ *$//'
