dotfiles/bin/batteries

67 lines
1.5 KiB
Bash
Executable File

#!/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=""
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> "
done
printf "${text:0:-1}\n\n"
# 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