Files
infra/dotfiles/desktop/.config/i3blocks/scripts/battery
Fabio Scotto di Santolo 31c17c95c1 Minimal i3 setup
2026-03-15 22:00:35 +01:00

48 lines
1.0 KiB
Bash
Executable File

#!/bin/sh
total_now=0
total_full=0
status=""
for bat in /sys/class/power_supply/BAT*; do
[ -d "$bat" ] || continue
if [ -r "$bat/energy_now" ] && [ -r "$bat/energy_full" ]; then
now=$(cat "$bat/energy_now")
full=$(cat "$bat/energy_full")
elif [ -r "$bat/charge_now" ] && [ -r "$bat/charge_full" ]; then
now=$(cat "$bat/charge_now")
full=$(cat "$bat/charge_full")
else
continue
fi
st=$(cat "$bat/status" 2>/dev/null)
total_now=$((total_now + now))
total_full=$((total_full + full))
case "$st" in
Charging) status="⚡" ;;
Discharging) [ -z "$status" ] && status="🔋" ;;
Full) [ -z "$status" ] && status="✔" ;;
esac
done
[ "$total_full" -gt 0 ] || exit 0
pct=$((100 * total_now / total_full))
[ -n "$status" ] || status="BAT"
text="$status $pct%"
if [ "$pct" -le 15 ]; then
color="#ff5555"
elif [ "$pct" -le 30 ]; then
color="#f1fa8c"
else
color="#9ece6a"
fi
printf '%s\n%s\n%s\n' "$text" "$text" "$color"