Single script for all batteries

This commit is contained in:
Nefrace 2025-05-31 17:34:00 +03:00
parent 6454e76140
commit d66332ed2a
3 changed files with 77 additions and 7 deletions

65
bin/batteries Executable file
View File

@ -0,0 +1,65 @@
#!/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"
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")
text="$ICON $BAT"
printf "<span foreground=\"${COLOR}\">${text}</span>"
done
printf "\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

View File

@ -40,7 +40,8 @@ STAT=$(echo "$bt" | rg ": ([\w\s]+)," -or '$1')
ICON=$(geticon "$BAT" "$STAT") ICON=$(geticon "$BAT" "$STAT")
COLOR=$(getcolor "$BAT" "$STAT") COLOR=$(getcolor "$BAT" "$STAT")
echo "$ICON" $(($1 + 1)): "$BAT"% #echo "$ICON" $(($1 + 1)): "$BAT"%
echo "$ICON" "$BAT"%
echo "$ICON" "$BAT"% echo "$ICON" "$BAT"%
echo "$COLOR" echo "$COLOR"

View File

@ -10,13 +10,17 @@
separator=true separator=true
separator_block_width=15 separator_block_width=15
[battery1] # [battery1]
command=~/.dotfiles/bin/battery 0 # command=~/.dotfiles/bin/battery 0
interval=30 # interval=30
[battery2] # [battery2]
command=~/.dotfiles/bin/battery 1 # command=~/.dotfiles/bin/battery 1
interval=30 # interval=30
[batteries]
command=~/.dotfiles/bin/batteries
interval=10
markup=pango
#[volume] #[volume]
#command=~/.config/i3blocks/volume-pipewire #command=~/.config/i3blocks/volume-pipewire