#!/bin/sh

for pid in $(pidof -x battery); do
    if [ "$pid" != $$ ]; then
        kill -9 "$pid"
    fi
done

dir_icons="/usr/local/bin/icons"

# notify when below this percentage
warning_level=20

# how often to check battery status, in minutes
check_interval=1

while true; do
  battery_level=$(upower -i $(upower -e | grep BAT) | grep -E "percentage" | sed 's/[^0-9]//g')
  discharging=$(upower -i $(upower -e | grep BAT) | grep -E "state" | grep -c "discharging")
  time_to_empty=$(upower -i $(upower -e | grep BAT) | 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 minutes left)" \
        -r 100 \
        -i $dir_icons/battery.svg
  fi

  sleep ${check_interval}m
done
