29 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| # Prints all batteries, their percentage remaining and an emoji corresponding
 | |
| # to charge status (🔌 for plugged up, 🔋 for discharging on battery, etc.).
 | |
| 
 | |
| case $BLOCK_BUTTON in
 | |
|     3) notify-send "🔋 Battery module" "🔋: discharging
 | |
| 🛑: not charging
 | |
| 🔄;: stagnant charge
 | |
| 🔌: charging
 | |
| ⚡: charged
 | |
| ❗: battery very low!" ;;
 | |
| esac
 | |
| 
 | |
| # 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)
 | |
| 	[ -n "$capacity" ] && [ "$capacity" -gt 100 ] && continue 	#do not print misreads
 | |
| 	[ -z "$capacity" ] && continue 		#if battery fails during reading, quit
 | |
| 	status=$(sed "s/Discharging/🔋/;s/Not charging/🛑/;s/Charging/🔌/;s/Unknown/🔋/;s/Full/⚡/" "$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%%\n" "$status" "$warn" "$capacity"
 | |
| 	unset warn
 | |
| done | sed 's/ *$//'
 |