#!/bin/bash DIR="/sys/class/power_supply" if [[ "$BLOCK_INSTANCE" == "" ]]; then for BAT in $DIR/BAT*/; do [[ -f "${BAT}uevent" ]] && BATS+="$BAT/uevent " done else [[ -f "$DIR/BAT$BLOCK_INSTANCE/uevent" ]] && BATS="$DIR/BAT$BLOCK_INSTANCE/uevent" fi if [[ "${BATS}" == "" ]]; then echo " no battery " echo "n/a" exit 33 fi cat $BATS | gawk -F '=' ' BEGIN { efull = 0 enow = 0 status = "" } /POWER_SUPPLY_STATUS=/ { if (status == "") { status = $2 if (status == "Discharging") { status = "↓" } else if (status == "Charging") { status = "⚡" } else { status = "" } } } /POWER_SUPPLY_ENERGY_FULL=/ { efull += $2 } /POWER_SUPPLY_ENERGY_NOW=/ { enow += $2 } END { charge = enow / efull * 100 printf("%s%d%\n", status, charge) printf("%s%d\n", status, charge) if (charge > 25) { print("#04B431\n") } else if (charge > 20) { print("#A8FF00\n") } else if (charge > 15) { print("#FFF600\n") } else if (charge > 10) { print("#FFAE00\n") } else if (charge > 5) { print("#FF0000\n") } else { exit 33 } } '