From c23934c92ce9b652783a5caef6c8f072d9adc7ae Mon Sep 17 00:00:00 2001 From: Angel <157843979+Angel-Karasu@users.noreply.github.com> Date: Fri, 2 May 2025 19:59:34 +0200 Subject: [PATCH 1/4] Support as many rechargeable batteries --- .../battery-combined-shell.sh | 46 ++++++++----------- .../battery-combined-udev.sh | 46 ++++++++----------- 2 files changed, 36 insertions(+), 56 deletions(-) diff --git a/polybar-scripts/battery-combined-shell/battery-combined-shell.sh b/polybar-scripts/battery-combined-shell/battery-combined-shell.sh index 9466ce2b..9743bee0 100644 --- a/polybar-scripts/battery-combined-shell/battery-combined-shell.sh +++ b/polybar-scripts/battery-combined-shell/battery-combined-shell.sh @@ -1,42 +1,32 @@ #!/bin/sh -PATH_AC="/sys/class/power_supply/AC" -PATH_BATTERY_0="/sys/class/power_supply/BAT0" -PATH_BATTERY_1="/sys/class/power_supply/BAT1" +PATH_ACs=$(find /sys/class/power_supply/ -regex ".*A\(C\|DP\)0") +PATH_BATTERIES=$(find /sys/class/power_supply/*) ac=0 -battery_level_0=0 -battery_level_1=0 -battery_max_0=0 -battery_max_1=0 +battery_level=0 +battery_max=0 -if [ -f "$PATH_AC/online" ]; then - ac=$(cat "$PATH_AC/online") -fi - -if [ -f "$PATH_BATTERY_0/energy_now" ]; then - battery_level_0=$(cat "$PATH_BATTERY_0/energy_now") -fi - -if [ -f "$PATH_BATTERY_0/energy_full" ]; then - battery_max_0=$(cat "$PATH_BATTERY_0/energy_full") -fi - -if [ -f "$PATH_BATTERY_1/energy_now" ]; then - battery_level_1=$(cat "$PATH_BATTERY_1/energy_now") -fi +for PATH_AC in $PATH_ACs; do + if [ -f "$PATH_AC/online" ]; then + ac=$(("$ac + $(cat "$PATH_AC/online")")) + fi +done; -if [ -f "$PATH_BATTERY_1/energy_full" ]; then - battery_max_1=$(cat "$PATH_BATTERY_1/energy_full") -fi +for PATH_BATTERY in $PATH_BATTERIES; do + if [ -f "$PATH_BATTERY/energy_now" ]; then + battery_level=$(("$batteries_level + $(cat "$PATH_BATTERY/energy_now")")) + fi -battery_level=$(("$battery_level_0 + $battery_level_1")) -battery_max=$(("$battery_max_0 + $battery_max_1")) + if [ -f "$PATH_BATTERY/energy_full" ]; then + battery_max=$(cat "$PATH_BATTERY/energy_full") + fi +done; battery_percent=$(("$battery_level * 100")) battery_percent=$(("$battery_percent / $battery_max")) -if [ "$ac" -eq 1 ]; then +if [ "$ac" -gt 0 ]; then icon="#1" if [ "$battery_percent" -gt 97 ]; then diff --git a/polybar-scripts/battery-combined-udev/battery-combined-udev.sh b/polybar-scripts/battery-combined-udev/battery-combined-udev.sh index 2ad7a7c1..5001adcf 100644 --- a/polybar-scripts/battery-combined-udev/battery-combined-udev.sh +++ b/polybar-scripts/battery-combined-udev/battery-combined-udev.sh @@ -1,43 +1,33 @@ #!/bin/sh battery_print() { - PATH_AC="/sys/class/power_supply/AC" - PATH_BATTERY_0="/sys/class/power_supply/BAT0" - PATH_BATTERY_1="/sys/class/power_supply/BAT1" + PATH_ACs=$(find /sys/class/power_supply/ -regex ".*A\(C\|DP\)0") + PATH_BATTERIES=$(find /sys/class/power_supply/*) ac=0 - battery_level_0=0 - battery_level_1=0 - battery_max_0=0 - battery_max_1=0 + battery_level=0 + battery_max=0 - if [ -f "$PATH_AC/online" ]; then - ac=$(cat "$PATH_AC/online") - fi - - if [ -f "$PATH_BATTERY_0/energy_now" ]; then - battery_level_0=$(cat "$PATH_BATTERY_0/energy_now") - fi - - if [ -f "$PATH_BATTERY_0/energy_full" ]; then - battery_max_0=$(cat "$PATH_BATTERY_0/energy_full") - fi - - if [ -f "$PATH_BATTERY_1/energy_now" ]; then - battery_level_1=$(cat "$PATH_BATTERY_1/energy_now") - fi + for PATH_AC in $PATH_ACs; do + if [ -f "$PATH_AC/online" ]; then + ac=$(("$ac + $(cat "$PATH_AC/online")")) + fi + done; - if [ -f "$PATH_BATTERY_1/energy_full" ]; then - battery_max_1=$(cat "$PATH_BATTERY_1/energy_full") - fi + for PATH_BATTERY in $PATH_BATTERIES; do + if [ -f "$PATH_BATTERY/energy_now" ]; then + battery_level=$(("$batteries_level + $(cat "$PATH_BATTERY/energy_now")")) + fi - battery_level=$(("$battery_level_0 + $battery_level_1")) - battery_max=$(("$battery_max_0 + $battery_max_1")) + if [ -f "$PATH_BATTERY/energy_full" ]; then + battery_max=$(cat "$PATH_BATTERY/energy_full") + fi + done; battery_percent=$(("$battery_level * 100")) battery_percent=$(("$battery_percent / $battery_max")) - if [ "$ac" -eq 1 ]; then + if [ "$ac" -gt 0 ]; then icon="#1" if [ "$battery_percent" -gt 97 ]; then From 64778af8b67b75663898bdc80675afc4ac3a391a Mon Sep 17 00:00:00 2001 From: Angel <157843979+Angel-Karasu@users.noreply.github.com> Date: Fri, 2 May 2025 20:00:51 +0200 Subject: [PATCH 2/4] Select only batteries in PATH_BATTERIES --- .../battery-combined-shell/battery-combined-shell.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/polybar-scripts/battery-combined-shell/battery-combined-shell.sh b/polybar-scripts/battery-combined-shell/battery-combined-shell.sh index 9743bee0..c4014ca8 100644 --- a/polybar-scripts/battery-combined-shell/battery-combined-shell.sh +++ b/polybar-scripts/battery-combined-shell/battery-combined-shell.sh @@ -1,7 +1,7 @@ #!/bin/sh PATH_ACs=$(find /sys/class/power_supply/ -regex ".*A\(C\|DP\)0") -PATH_BATTERIES=$(find /sys/class/power_supply/*) +PATH_BATTERIES=$(find /sys/class/power_supply/BAT*) ac=0 battery_level=0 From db5b6a8c247e6a1634b4043eb2ef0f3316b3d93f Mon Sep 17 00:00:00 2001 From: Angel <157843979+Angel-Karasu@users.noreply.github.com> Date: Fri, 2 May 2025 20:02:02 +0200 Subject: [PATCH 3/4] Detect AC --- .../battery-combined-shell/battery-combined-shell.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/polybar-scripts/battery-combined-shell/battery-combined-shell.sh b/polybar-scripts/battery-combined-shell/battery-combined-shell.sh index c4014ca8..6e88e3a5 100644 --- a/polybar-scripts/battery-combined-shell/battery-combined-shell.sh +++ b/polybar-scripts/battery-combined-shell/battery-combined-shell.sh @@ -1,6 +1,6 @@ #!/bin/sh -PATH_ACs=$(find /sys/class/power_supply/ -regex ".*A\(C\|DP\)0") +PATH_ACs=$(find /sys/class/power_supply/ -regex ".*A\(C\|DP\).*") PATH_BATTERIES=$(find /sys/class/power_supply/BAT*) ac=0 From facf2d7a18bce6caab80ba8765ea70059b16bef9 Mon Sep 17 00:00:00 2001 From: Angel <157843979+Angel-Karasu@users.noreply.github.com> Date: Fri, 2 May 2025 20:03:41 +0200 Subject: [PATCH 4/4] Select only batteries in PATH_BATTERIES && detect AC --- .../battery-combined-udev/battery-combined-udev.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/polybar-scripts/battery-combined-udev/battery-combined-udev.sh b/polybar-scripts/battery-combined-udev/battery-combined-udev.sh index 5001adcf..3f9013f0 100644 --- a/polybar-scripts/battery-combined-udev/battery-combined-udev.sh +++ b/polybar-scripts/battery-combined-udev/battery-combined-udev.sh @@ -1,8 +1,8 @@ #!/bin/sh battery_print() { - PATH_ACs=$(find /sys/class/power_supply/ -regex ".*A\(C\|DP\)0") - PATH_BATTERIES=$(find /sys/class/power_supply/*) + PATH_ACs=$(find /sys/class/power_supply/ -regex ".*A\(C\|DP\).*") + PATH_BATTERIES=$(find /sys/class/power_supply/BAT*) ac=0 battery_level=0