#!/bin/sh # Battery indicator for dwmblocks # Total battery charge total=0 batteries=0 for battery in /sys/class/power_supply/BAT?* ; do capacity=$(cat $battery/capacity 2>/dev/null || break) total=$((capacity+total)) batteries=$(($batteries+1)) done # If there's a total, get average, if else, print a plug [ $total -gt 0 ] && bat=$(($total/$batteries)) || bat="" [ "$bat" = "" ] && echo "$bat" && exit # If something is charging, change status grep -rq 'Charging' /sys/class/power_supply/BAT* 2>/dev/null && stat='Charging' # Get graphical battery level case 1 in $((bat >= 98)) ) icon="" ;; $((bat >= 90)) ) icon="" ;; $((bat >= 80)) ) icon="" ;; $((bat >= 70)) ) icon="" ;; $((bat >= 60)) ) icon="" ;; $((bat >= 50)) ) icon="" ;; $((bat >= 40)) ) icon="" ;; $((bat >= 30)) ) icon="" ;; $((bat >= 20)) ) icon="" ;; $((bat >= 10)) ) icon="" ;; $((bat >= 0)) ) icon="" ;; esac # Charging indicator if status file indicates such state if [ "$stat" = "Charging" ] ; then icon="$(printf '%s' "$icon" | sed ' s///; s///; s///; s///; s///; s///; s///; s///; s///; s///; s///; ')" fi echo "$icon"