aboutsummaryrefslogtreecommitdiff
path: root/.dzen/battery.sh
blob: 0242b8a93e6186634c7dd5c5d7670473fc7a8336 (plain) (blame)
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
57
58
59
60
61
62
63
#!/bin/sh
#
# original script by lyon8 <lyon8@gmx.net>
# modifications from original by <sean.escriva@gmail.com>
# show your laptop battery state in dzen
# Taken from http://www.webframp.com/2008/08/17/switchdzen/ and modified by Ryan
# Kavanagh <ryanakca@kubuntu.org> to add support for a missing battery and use
# /sys instead of /proc/acpi/battery
 
BG='#000000'  # dzen backgrounad
FG='#008dd5'  # dzen foreground
W=114         # width of the dzen bar
GW=50         # width of the gauge
GFG='#33ccff' # color of the gauge
GH=7          # height of the gauge
GBG='#333'    # color of gauge background
X=0           # x position
Y=0           # y position
FN='-misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-1'     # font
 
STATEFILE='/sys/bus/acpi/drivers/battery/PNP0C0A:00/power_supply/BAT1/uevent' # battery's state file
 
LOWBAT=10        # percentage of battery life marked as low
LOWCOL='#ff4747' # color when battery is low
CHGCOL='#60da11' # color when battery is charging
TIME_INT=2       # time interval in seconds to hold display
TIME_ITER=5      # no of iterations in which time is displayed
 
PREBAR='^i(/home/ryan/.dzen/icons/power-bat.xbm) ' # caption (also icons are possible)
 
while true; do
    PRESENT=`acpi -b`;
    if [ "${PRESENT}" ]; then
        BAT_FULL=`cat $STATEFILE|grep POWER_SUPPLY_CHARGE_FULL_DESIGN | cut -d '=' -f 2 `;
        STATUS=`echo ${PRESENT} | grep Charging`;

#        echo $BAT_FULL " " $STATUS " " $RCAP > /dev/stdout

        RPERC=`echo ${PRESENT} | cut -d, -f2 | sed -e 's/[^0-9]//g'`;
         
        # draw the bar and pipe everything into dzen
        if [ $RPERC -le $LOWBAT ]; then
            GFG=$LOWCOL;
        fi
        if [ "${STATUS}" ]; then
            GFG=$CHGCOL;
        else
            GFG='#33ccff';
        fi
        eval echo $RPERC | dzen2-gdbar -h $GH -w $GW -fg $GFG -bg $GBG -l $PREBAR
    else
        echo -n $PREBAR #uncomment for an icon
        eval echo 'Missing'
    fi
    sleep $TIME_INT;
    I=0;
    while [ ${I} -lt ${TIME_ITER} ]; do
        DATE=`date +"%X"`;
        eval echo $DATE;
        I=$((${I}+1));
        sleep $TIME_INT;
    done
done | dzen2 -ta c -tw $W -y $Y -x $X -fg $FG -bg $BG -fn $FN