summaryrefslogtreecommitdiff
path: root/scripts/.local/bin/statusbar/sb-battery
blob: 04a3cf7b1fde6a8dc6c95bf3ad28ac06eee9350d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/sh

# Prints all batteries, their percentage remaining

# Loop through all attached batteries and format the info
for battery in /sys/class/power_supply/BAT?*; do
	# If non-first battery, print a space separator.
	[ -n "${capacity+x}" ] && printf " "
	# Sets up the status and capacity
	case "$(cat "$battery/status" 2>&1)" in
		"Full") status="F" ;;
		"Discharging") status="-" ;;
		"Charging") status="+" ;;
		"Not charging") status="" ;;
		"Unknown") status="?" ;;
		*) exit 1 ;;
	esac
	capacity="$(cat "$battery/capacity" 2>&1)"
	# Will make a warn variable if discharging and low
	[ "$status" = "D" ] && [ "$capacity" -le 25 ] && warn="!!!"
	# Prints the info
	printf "%d%%%s%s" "$capacity" "$status" "$warn" ; unset warn
done && printf "\\n"