#!/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)) ) bar="━━━━━━━━━━" ;; $((bat >= 90)) ) bar="━━━━━━━━━─" ;; $((bat >= 80)) ) bar="━━━━━━━━──" ;; $((bat >= 70)) ) bar="━━━━━━━───" ;; $((bat >= 60)) ) bar="━━━━━━────" ;; $((bat >= 50)) ) bar="━━━━━─────" ;; $((bat >= 40)) ) bar="━━━━──────" ;; $((bat >= 30)) ) bar="━━━───────" ;; $((bat >= 20)) ) bar="━━────────" ;; $((bat >= 10)) ) bar="━─────────" ;; $((bat >= 10)) ) bar="──────────" ;; esac # Charging indicator if status file indicates such state [ "$stat" != "Charging" ] && icon="󰁹" || icon="" echo "$icon $bar"