summaryrefslogtreecommitdiff
path: root/.local/bin/dwmbar/dwmb-battery
blob: 68f8b498e954755a23be9379b779eed58074525d (plain)
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
#!/bin/sh

# Prints all batteries, their percentage remaining and an emoji corresponding
# to charge status.

case $BLOCK_BUTTON in
	3) notify-send "  Battery module" " : discharging
 : not charging
 : stagnant charge
 : charging
 : charged
 : battery very low!" ;;
esac

# acpi alternative
# acpi | sed "s/Battery [0-9]: //;s/[Dd]ischarging, / /;s/[Nn]ot charging, / /;s/[Cc]harging, / /;s/[Uu]nknown, /♻️/;s/[Ff]ull, / /;s/ \(remaining\|until charged\)//"; exit

# Loop through all attached batteries.
for battery in /sys/class/power_supply/BAT?
do
	# Get its remaining capacity and charge status.
	capacity=$(cat "$battery"/capacity 2>/dev/null) || break
	status=$(sed "s/[Dd]ischarging/ /;s/[Nn]ot charging/ /;s/[Cc]harging/ /;s/[Uu]nknown/♻️/;s/[Ff]ull/ /" "$battery"/status)

	# If it is discharging and 25% or less, we will add a   as a warning.
	 [ "$capacity" -le 25 ] && [ "$status" = " " ] && warn=" "

	printf "%s%s%s%%  " " $status" "$warn" "$capacity"
	unset warn
done | sed 's/ *$//'