#!/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"