From e63c8cbfd421db7e3496000e76a5f1f1998081d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Czy=C5=BC?= Date: Wed, 2 Jul 2025 16:17:49 +0200 Subject: [PATCH] fix: battery calculation --- bar.sh | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/bar.sh b/bar.sh index 99ff87d..5a12152 100644 --- a/bar.sh +++ b/bar.sh @@ -83,6 +83,37 @@ get_brightness() { # Function to get weighted average battery level get_battery_level() { + BAT_PATHS=(/sys/class/power_supply/BAT*) + + total_now=0 + total_full=0 + + for BAT in "${BAT_PATHS[@]}"; do + if [[ -f "$BAT/energy_now" && -f "$BAT/energy_full" ]]; then + now=$(<"$BAT/energy_now") + full=$(<"$BAT/energy_full") + elif [[ -f "$BAT/charge_now" && -f "$BAT/charge_full" ]]; then + now=$(<"$BAT/charge_now") + full=$(<"$BAT/charge_full") + else + continue + fi + + total_now=$((total_now + now)) + total_full=$((total_full + full)) + done + + if [[ $total_full -eq 0 ]]; then + percent=0 + else + percent=$((100 * total_now / total_full)) + fi + + if (( percent < 15 )); then + echo "^c$TEXT^^b$LOVE^BAT: $percent%^b$BASE^" + else + echo "^c$LOVE^BAT: $percent%" + fi # Get battery levels (adjust paths if needed) # battery0_level=$(cat /sys/class/power_supply/BAT0/capacity) # battery1_level=$(cat /sys/class/power_supply/BAT1/capacity) @@ -96,8 +127,8 @@ get_battery_level() { # Calculate weighted average # weighted_avg=$(awk "BEGIN {printf \"%.0f%%\", ($battery0_level * $weight0 + $battery1_level * $weight1)}") - battery0_level=$(cat /sys/class/power_supply/BAT0/capacity) - echo "^c$LOVE^BAT: $battery0_level%" + # battery0_level=$(cat /sys/class/power_supply/BAT0/capacity) + # echo "^c$LOVE^BAT: $battery0_level%" # Output the result with color # echo "^c$LOVE^BAT: $weighted_avg"