This repository has been archived on 2019-02-28. You can view files and clone it, but cannot push or open issues or pull requests.

84 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
DIR="/sys/class/power_supply"
[[ "$BLOCK_BUTTON" == "1" ]] && LONG=true || LONG=false
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 '=' -v LONG="$LONG" '
BEGIN {
efull = 0
enow = 0
status = ""
}
/POWER_SUPPLY_STATUS=/ {
if (status == "") {
if ($2 == "Discharging") {
status = ""
} else if ($2 == "Charging") {
status = "⚡"
}
}
}
/POWER_SUPPLY_ENERGY_FULL=/ {
efull += $2
}
/POWER_SUPPLY_ENERGY_NOW=/ {
enow += $2
}
END {
charge = enow / efull * 100
if (LONG == "false") {
if (charge < 100 / 9) {
printf("\n")
} else if (charge < 100 / 9 * 2 ) {
printf("%s▁\n", status)
} else if (charge < 100 / 9 * 3 ) {
printf("%s▂\n", status)
} else if (charge < 100 / 9 * 4 ) {
printf("%s▃\n", status)
} else if (charge < 100 / 9 * 5 ) {
printf("%s▄\n", status)
} else if (charge < 100 / 9 * 6 ) {
printf("%s▅\n", status)
} else if (charge < 100 / 9 * 7 ) {
printf("%s▆\n", status)
} else if (charge < 100 / 9 * 8 ) {
printf("%s▇\n", status)
} else {
printf("%s█\n", status)
}
} else {
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
}
}
'