First commit
This commit is contained in:
		
							
								
								
									
										71
									
								
								battery_health.60s.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										71
									
								
								battery_health.60s.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,71 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# <bitbar.title>Battery Health</bitbar.title>
 | 
				
			||||||
 | 
					# <bitbar.version>v1.0</bitbar.version>
 | 
				
			||||||
 | 
					# <bitbar.author>Andros Fenollosa</bitbar.author>
 | 
				
			||||||
 | 
					# <bitbar.author.github>tanrax</bitbar.author.github>
 | 
				
			||||||
 | 
					# <bitbar.desc>Shows power percentaje and notice when you load</bitbar.desc>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Variables
 | 
				
			||||||
 | 
					BATTERY=$(ioreg -l | awk '$3~/Capacity/{c[$3]=$5}END{OFMT="%.0f%";max=c["\"MaxCapacity\""];print(max>0?100*c["\"CurrentCapacity\""]/max:"?")}')
 | 
				
			||||||
 | 
					TYPE=$(pmset -g cap | sed -ne 's/^Capabilities for \(.*\) Power:$/\1/p')
 | 
				
			||||||
 | 
					POR_LOW=45
 | 
				
			||||||
 | 
					POR_HIGH=85
 | 
				
			||||||
 | 
					LOW=False
 | 
				
			||||||
 | 
					HIGH=False
 | 
				
			||||||
 | 
					SAVE_LOCATION=$TMPDIR/batteryHealth
 | 
				
			||||||
 | 
					BAD='🔴'
 | 
				
			||||||
 | 
					AC='⚡️'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Get data
 | 
				
			||||||
 | 
					if [ -f "$SAVE_LOCATION" ]; then
 | 
				
			||||||
 | 
					    DATA=$(cat "$SAVE_LOCATION")
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    DATA="$LOW|$HIGH"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LOW=$(echo "$DATA" | cut -d "|" -f1)
 | 
				
			||||||
 | 
					HIGH=$(echo "$DATA" | cut -d "|" -f2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Functions
 | 
				
			||||||
 | 
					function changeStatus {
 | 
				
			||||||
 | 
					    osascript -e "display notification \"$2\" with title \"$1\" sound name \"$3\"" &> /dev/null
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function batteryLow {
 | 
				
			||||||
 | 
						LOW=True
 | 
				
			||||||
 | 
					    changeStatus "Battery Low" $BATTERY% "Blow"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function batteryNormal {
 | 
				
			||||||
 | 
						HIGH=False
 | 
				
			||||||
 | 
						LOW=False
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function batteryHigh {
 | 
				
			||||||
 | 
						HIGH=True
 | 
				
			||||||
 | 
					    changeStatus "Battery high" $BATTERY% "Blow"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Logic
 | 
				
			||||||
 | 
					if [ $BATTERY -le $POR_LOW ] && [ $LOW = False ]; then
 | 
				
			||||||
 | 
						batteryLow
 | 
				
			||||||
 | 
					elif [ $BATTERY -ge $POR_HIGH ] && [ $HIGH = False ]; then
 | 
				
			||||||
 | 
						batteryHigh
 | 
				
			||||||
 | 
					elif [ $BATTERY -le $POR_HIGH ] && [ $BATTERY -ge $POR_LOW ]; then
 | 
				
			||||||
 | 
						batteryNormal
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Save data
 | 
				
			||||||
 | 
					echo "$LOW|$HIGH" > "$SAVE_LOCATION";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# View battery
 | 
				
			||||||
 | 
					if [ $TYPE = 'AC' ]; then
 | 
				
			||||||
 | 
						echo $AC $BATTERY%
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						if [ $HIGH = True ] || [ $LOW = True ]; then
 | 
				
			||||||
 | 
								echo $BAD $BATTERY%
 | 
				
			||||||
 | 
							else 
 | 
				
			||||||
 | 
								echo $BATTERY%
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
		Reference in New Issue
	
	Block a user