From b7d7334ad16edf8fb6339076582ea9190ef32a37 Mon Sep 17 00:00:00 2001 From: metam1nd Date: Tue, 15 Oct 2024 23:46:40 +0200 Subject: [PATCH 1/2] Added detection logic for energy or charge based reporting --- .../battery-combined-udev.sh | 39 +++++++++++-------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/polybar-scripts/battery-combined-udev/battery-combined-udev.sh b/polybar-scripts/battery-combined-udev/battery-combined-udev.sh index 2ad7a7c1..7b717a14 100644 --- a/polybar-scripts/battery-combined-udev/battery-combined-udev.sh +++ b/polybar-scripts/battery-combined-udev/battery-combined-udev.sh @@ -11,31 +11,36 @@ battery_print() { battery_max_0=0 battery_max_1=0 - if [ -f "$PATH_AC/online" ]; then - ac=$(cat "$PATH_AC/online") - fi + get_battery_level() { + battery_path="$1" + battery_level=0 + battery_max=0 + + if [ -f "$battery_path/energy_now" ]; then + battery_level=$(cat "$battery_path/energy_now") + battery_max=$(cat "$battery_path/energy_full") + elif [ -f "$battery_path/charge_now" ]; then + battery_level=$(cat "$battery_path/charge_now") + battery_max=$(cat "$battery_path/charge_full") + fi - if [ -f "$PATH_BATTERY_0/energy_now" ]; then - battery_level_0=$(cat "$PATH_BATTERY_0/energy_now") - fi + echo "$battery_level $battery_max" + } - 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") + if [ -f "$PATH_AC/online" ]; then + ac=$(cat "$PATH_AC/online") fi - if [ -f "$PATH_BATTERY_1/energy_full" ]; then - battery_max_1=$(cat "$PATH_BATTERY_1/energy_full") - fi + read battery_level_0 battery_max_0 <<< $(get_battery_level "$PATH_BATTERY_0") + read battery_level_1 battery_max_1 <<< $(get_battery_level "$PATH_BATTERY_1") battery_level=$(("$battery_level_0 + $battery_level_1")) battery_max=$(("$battery_max_0 + $battery_max_1")) - battery_percent=$(("$battery_level * 100")) - battery_percent=$(("$battery_percent / $battery_max")) + battery_percent=0 + if [ "$battery_max" -ne 0 ]; then + battery_percent=$(("$battery_level * 100 / $battery_max")) + fi if [ "$ac" -eq 1 ]; then icon="#1" From d1a5adbaac9fecf99895241e4e4e02b20e6f55b6 Mon Sep 17 00:00:00 2001 From: metam1nd Date: Wed, 16 Oct 2024 18:06:04 +0200 Subject: [PATCH 2/2] Fix ShellCheck errors --- .../battery-combined-udev/battery-combined-udev.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/polybar-scripts/battery-combined-udev/battery-combined-udev.sh b/polybar-scripts/battery-combined-udev/battery-combined-udev.sh index 7b717a14..9e942913 100644 --- a/polybar-scripts/battery-combined-udev/battery-combined-udev.sh +++ b/polybar-scripts/battery-combined-udev/battery-combined-udev.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash battery_print() { PATH_AC="/sys/class/power_supply/AC" @@ -31,8 +31,8 @@ battery_print() { ac=$(cat "$PATH_AC/online") fi - read battery_level_0 battery_max_0 <<< $(get_battery_level "$PATH_BATTERY_0") - read battery_level_1 battery_max_1 <<< $(get_battery_level "$PATH_BATTERY_1") + read -r battery_level_0 battery_max_0 <<< "$(get_battery_level "$PATH_BATTERY_0")" + read -r battery_level_1 battery_max_1 <<< "$(get_battery_level "$PATH_BATTERY_1")" battery_level=$(("$battery_level_0 + $battery_level_1")) battery_max=$(("$battery_max_0 + $battery_max_1"))