EvilZone
Programming and Scripting => Scripting Languages => : Deque May 21, 2013, 12:18:04 PM
-
This bash script that I wrote uses awk to get the number of bars to show how much the battery is loaded. It prints the bars in appropriate colors ranging from red to yellow to green to show the status. In addition it indicates if the battery is loading with the '~'.
Note that you maybe have to adjust the paths of BATTERY_DIR and ACAD_DIR to make it work. (This script is tested and works on Ubuntu 13.04)
#! /bin/bash
BATTERY_DIR=/sys/class/power_supply/BAT0
ACAD_DIR=/sys/class/power_supply/AC
BARS=$( awk '{print int( 5*($0/100) + 0.5) }' ${BATTERY_DIR}/capacity)
if [ $(cat ${ACAD_DIR}/online) -eq 1 ]; then
echo -ne "~"
fi
if [ $BARS -gt 3 ]; then
echo -ne "\[\033[1;32m\]" #green color
elif [ $BARS -gt 2 ]; then
echo -ne "\[\033[1;33m\]" #yellow color
else
echo -ne "\[\033[1;31m\]" #red color
fi
for (( c=1; c<=${BARS}; c++ ))
do
echo -ne "|"
done
for (( c=${BARS} + 1; c<=5; c++ ))
do
echo -ne " "
done
Old (Ubuntu 12.10)
#! /bin/bash
BATTERY_DIR=/proc/acpi/battery/BAT1
ACAD_DIR=/proc/acpi/ac_adapter/ACAD
BARS=$( awk '/last full capacity/ {c = $4}
/remaining capacity/ {print int( (5*($3/c)) + 0.5 )}' ${BATTERY_DIR}/info ${BATTERY_DIR}/state)
if grep -q on-line ${ACAD_DIR}/state; then
echo -ne "~"
fi
if [ $BARS -gt 3 ]; then
echo -ne "\[\033[1;32m\]" #green color
elif [ $BARS -gt 2 ]; then
echo -ne "\[\033[1;33m\]" #yellow color
else
echo -ne "\[\033[1;31m\]" #red color
fi
for (( c=1; c<=${BARS}; c++ ))
do
echo -ne "|"
done
for (( c=${BARS} + 1; c<=5; c++ ))
do
echo -ne " "
done
Now you can use this i.e. to show the battery status in your prompt.
Example what to put in your .bashrc: (I saved the bash script as battery.sh in my home)
PS1="<\[\033[0;34m\]\u:\w\[\033[0;m\]>-(`battery.sh`\[\033[0;m\]):\$ "
Which will look like this (full battery):
(http://s7.directupload.net/images/130521/4xzz7iq5.png) (http://www.directupload.net)
Or like this (low battery):
(http://s1.directupload.net/images/130521/jlaqsxbz.png) (http://www.directupload.net)
-
Very sweet little script.
Only Im wondering about performace.
I like my terminals blazingly fast, as they should be.
Do you notice this ?
Maybe you could use a cronjob every x minutes and read from that for example.
Would keep things faster I can imagine.
-
Very sweet little script.
Only Im wondering about performace.
I like my terminals blazingly fast, as they should be.
Do you notice this ?
Maybe you could use a cronjob every x minutes and read from that for example.
Would keep things faster I can imagine.
Thanks. I don't recognize any difference in speed, though.
-
Nice but I don't use lynx and also I use Desktop. :P
-
Nice but I don't use lynx and also I use Desktop. :P
What is lynx?
-
Nice but I don't use lynx and also I use Desktop. :P
lolwut
What does the usage of a text browser have to do with this?
-
What is lynx?
Linux
-
Nice script. I have to try this out on my laptop with broken battery ;D
:thumbs up:
-
I upgraded to Ubuntu 13.04 and encountered that the script doesn't work anymore.
So I adjusted the bash script. See above. For users of the LTS the old script is still there in spoiler tags.