#!/bin/bash
#
# See http://blog.lick-me.org/2013/08/yet-another-battery-widget-awesome-3-5-1/
#
# Returns battery charge as a percentage.
# Thanks http://blmath.wordpress.com/2010/03/19/bash-function-to-get-battery-charge/
function battery_charge {
now=`cat /sys/class/power_supply/BAT0/energy_now`
full=`cat /sys/class/power_supply/BAT0/energy_full`
out=`echo $now/$full*100 | bc -l | cut -c 1-5`
echo $out | sed -e 's/\./,/g'
#echo "Charge: "$out"%"
}
# Returns battery capacity as a percentage.
# Thanks http://blmath.wordpress.com/2010/03/19/bash-function-to-get-battery-charge/
function battery_capacity {
design=`cat /sys/class/power_supply/BAT0/energy_full_design`
current=`cat /sys/class/power_supply/BAT0/energy_full`
out=`echo $current/$design*100 | bc -l | cut -c 1-5`
echo $out | sed -e 's/\./,/g'
#echo "Capacity: "$out"%"
}
# Basic parameters
healthy='#859900'
low='#b58900'
discharge='#dc322f'
# Abort if no battery is available
if [ ! -e "/sys/class/power_supply/BAT0" ]; then
exit
fi
# Get battery status
if [ -e "/sys/class/power_supply/BAT0/charge" ]; then
charge=`cat /sys/class/power_supply/BAT0/charge`
else
charge="`battery_charge`"
fi
# Set battery level indication
if ((`echo $charge | cut -d ',' -f 1` <= 25)); then
chargeColor=$low
else
chargeColor=$healthy
fi
# Get battery status
status=`cat /sys/class/power_supply/BAT0/status`
# Set battery status indication
if [[ "$status" = "Discharging" ]]; then
statusColor=$discharge
status="▼"
else
statusColor=$healthy
status="▲"
fi
# Output
echo "$charge% $status"