#!/bin/bash

geticon() {
  local icon=󰂎
  state=$2
  if [ "$state" = "Charging" ]; then
    icon=󰂄
  else
    [ "$1" -gt 0 ] && icon=󰂃
    [ "$1" -gt 10 ] && icon=󰁻
    [ "$1" -gt 20 ] && icon=󰁼
    [ "$1" -gt 30 ] && icon=󰁽
    [ "$1" -gt 40 ] && icon=󰁾
    [ "$1" -gt 50 ] && icon=󰁿
    [ "$1" -gt 60 ] && icon=󰂀
    [ "$1" -gt 70 ] && icon=󰂁
    [ "$1" -gt 80 ] && icon=󰂂
    [ "$1" -gt 90 ] && icon=󰁹
  fi
    
  echo "$icon"
}

getcolor() {
  local color='#80ff80'  
  if [ "$2" = "Charging" ]; then
    color='#0080ff'
  else
    [ "$1" -lt 60 ] && color='#ffff00'
    [ "$1" -lt 30 ] && color='#ff8000'
    [ "$1" -lt 15 ] && color='#ff0000'
  fi

  echo "$color"
}

batteries=$(acpi | rg 'Battery (\d)' -or '$1')
# echo "BATTERIES: $batteries"

text=""
ischarging=0
hasenough=0
for battery in $batteries; do
  # echo "BATTERY $battery"
  bt=$(acpi -b | grep "Battery $battery")
  BAT=$(echo "$bt" | rg "(\d?\d?\d)%" -or '$1')
  STAT=$(echo "$bt" | rg ": ([\w\s]+)," -or '$1')
  ICON=$(geticon "$BAT" "$STAT")
  COLOR=$(getcolor "$BAT" "$STAT")
  BATTEXT="$ICON$BAT%%"
  text+="<span foreground=\"${COLOR}\">${BATTEXT}</span> "

  [ "$STAT" = "Charging" ] && ischarging=1
  [ "$BAT" -gt 10 ] && hasenough=1
done
printf "${text:0:-1}\n\n"

if [ "$hasenough" -eq 0 ] && [ "$ischarging" -eq 0 ]; then
  notify-send "Battery level critical" "Please connect AC"
fi

# bt=$(acpi -b | grep "Battery $1")
# BAT=$(echo "$bt" | rg "(\d?\d?\d)%" -or '$1')
# STAT=$(echo "$bt" | rg ": ([\w\s]+)," -or '$1')
# ICON=$(geticon "$BAT" "$STAT")
# COLOR=$(getcolor "$BAT" "$STAT")

#echo "$ICON" $(($1 + 1)): "$BAT"%
# echo "$ICON" "$BAT"%
# echo "$ICON" "$BAT"%
echo "$COLOR"


exit 0

