diff options
author | Archie Hilton <archie.hilton1@gmail.com> | 2019-10-25 12:49:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-25 12:49:27 +0100 |
commit | 2b024b483fc754092829a60e16bfc34913d48ea6 (patch) | |
tree | 696430f19ae1ebb4585a911618a73943c2652861 | |
parent | 7cecb2d92b9aa2aa981dd9b2847f3624189f93e8 (diff) | |
parent | 304d4863d1034ea6fb0d5850fd4a3de6c52693fe (diff) |
Merge pull request #4 from thytom/battery-module-fix
Battery module fix
-rwxr-xr-x | bar.sh | 12 | ||||
-rwxr-xr-x | modules/battery | 67 |
2 files changed, 39 insertions, 40 deletions
@@ -15,7 +15,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. - MODULES_DIR="/usr/share/dwmbar/modules/" OUTPUT_CACHE="/home/$USER/.config/dwmbar/.cache/" @@ -41,8 +40,8 @@ get_bar() { for module in $MODULES; do if [[ $INTERNET -eq 0 ]] || [[ $ONLINE_MODULES != *"$module"* ]];then - module_out=$(cat $OUTPUT_CACHE$module | sed 's/\.$//g') - bar=$bar$module_out + module_out="$(cat $OUTPUT_CACHE$module | sed 's/\.$//g')" + bar="$bar$module_out" fi done # Uncomment to remove last separator @@ -60,15 +59,16 @@ run_module() fi [[ ! "$out" = "" ]] && [[ ! "$module" = "NULL" ]] && out="$out$SEPARATOR." - echo $out > "$OUTPUT_CACHE$module" + echo "$out" > "$OUTPUT_CACHE$module" } run() { get_internet for module in $MODULES; do - if [[ $INTERNET -eq 0 ]]; then - run_module $module + pgrep $module &> /dev/null + if [[ $INTERNET -eq 0 ]] && [[ $? -eq 1 ]]; then + run_module $module & else [[ $ONLINE_MODULES != *"$module"* ]] && run_module $module fi diff --git a/modules/battery b/modules/battery index 2802be9..901a66e 100755 --- a/modules/battery +++ b/modules/battery @@ -2,43 +2,42 @@ # Prints out battery percentage -CHARGING_ICON='' -WARNING_ICON='' -BATTERY_FULL_ICON='' -BATTERY_2_ICON='' -BATTERY_3_ICON='' -BATTERY_4_ICON='' +CHARGING_ICON=' ' +WARNING_ICON=' ' +BATTERY_FULL_ICON=' ' +BATTERY_2_ICON=' ' +BATTERY_3_ICON=' ' +BATTERY_4_ICON=' ' + +FULL_AT=98 + +BAT_ICON="" +ICON="" get_battery() { - if [ -d /sys/class/power_supply/BAT? ]; then - ac_adapter=$(cat /sys/class/power_supply/BAT?/status) - if [ "$ac_adapter" == "Charging" ]; then - echo "$CHARGING_ICON" - fi - - # Will show all batteries with approximate icon for remaining power. - for x in /sys/class/power_supply/BAT?/capacity; - do - case "$(cat $x)" in - 100) echo "$BATTERY_FULL_ICON" ;; - 9[0-9]) echo "$BATTERY_FULL_ICON $(cat $x)%" ;; - 8[0-9]|7[0-9]) echo "$BATTERY_2_ICON $(cat $x)%" ;; - 6[0-9]|5[0-9]) echo "$BATTERY_3_ICON $(cat $x)%" ;; - 4[0-9]|3[0-9]) echo "$BATTERY_4_ICON $(cat $x)%" ;; - 2[0-9]|1[0-9]) if [ "$ac_adapter" == "Charging" ]; then - echo "$BATTERY_4_ICON $(cat $x)%" - else - echo "$WARNING_ICON $BATTERY_4_ICON $(cat $x)%" - fi ;; - [0-9]) if [ "$ac_adapter" == "Charging" ]; then - echo "$BATTERY_4_ICON $(cat $x)%" - else - echo "$WARNING_ICON $BATTERY_4_ICON $(cat $x)%" - fi ;; - esac - done - fi + # The vast majority of people only use one battery. + + if [ -d /sys/class/power_supply/BAT0 ]; then + capacity=$(cat /sys/class/power_supply/BAT0/capacity) + charging=$(cat /sys/class/power_supply/BAT0/status) + if [[ "$charging" == "Charging" ]]; then + ICON="$CHARGING_ICON" + elif [[ $capacity -le 25 ]]; then + ICON="$WARNING_ICON" + fi + + if [[ $capacity -ge $FULL_AT ]]; then + BAT_ICON=$BATTERY_FULL_ICON + elif [[ $capacity -le 25 ]]; then + BAT_ICON=$BATTERY_4_ICON + elif [[ $capacity -le 50 ]]; then + BAT_ICON=$BATTERY_3_ICON + elif [[ $capacity -le $FULL_AT ]]; then + BAT_ICON=$BATTERY_2_ICON + fi + fi + echo "$ICON $BAT_ICON $capacity%" } get_battery |