1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
#!/bin/sh
cd /sys/class/power_supply 2>/dev/null ||
{ echo >&2 "The power_supply node doesn't exist in /sys -- not mounted?"; exit 1; }
for x in *; do
[ -e "./$x/type" ] || continue
read -r ONLINE < "./$x/online" 2>/dev/null
read -r PRESENT < "./$x/present" 2>/dev/null
#read -r TYPE < "./$x/type" 2>/dev/null
read -r STATUS < "./$x/status" 2>/dev/null
read -r CAPACITY < "./$x/capacity" 2>/dev/null
read -r HEALTH < "./$x/health" 2>/dev/null
ICON="?"
if [ "$ONLINE" != 1 ] && [ "$PRESENT" != 1 ]; then
COLOR='1;30'; ICON=✗
elif [ -z "$CAPACITY" ]; then
COLOR="1"; ICON=✓
else
if [ $CAPACITY -lt 25 ]; then
COLOR=31
elif [ $CAPACITY -lt 50 ]; then
COLOR=33
elif [ $CAPACITY -lt 100 ]; then
COLOR=32
else
COLOR=37
fi
case "$STATUS" in
"Charging") COLOR="$COLOR;1"; ICON="+";
;;
"Full") COLOR="$COLOR;1"; ICON=•;
;;
"Not charging") ICON=•;
;;
"Discharging") ICON=-;
;;
esac
fi
case "$HEALTH" in
Good|Unknown) HEALTH=""
;;
esac
if [ -t 1 ]; then
C1="\e[0;${COLOR}m"
C2="\e[0m"
fi
echo "$C1$ICON $x${CAPACITY:+ ($CAPACITY%)}${HEALTH:+ $HEALTH}$C2"
done
if [ -z "$ICON" ];then echo "No power supply sensors; that's normal on a desktop.";fi
|