| 
									
										
										
										
											2012-12-02 19:36:33 +00:00
										 |  |  | ########################################### | 
					
						
							|  |  |  | # Battery plugin for oh-my-zsh            # | 
					
						
							|  |  |  | # Original Author: Peter hoeg (peterhoeg) # | 
					
						
							|  |  |  | # Email: peter@speartail.com              # | 
					
						
							|  |  |  | ########################################### | 
					
						
							|  |  |  | # Author: Sean Jones (neuralsandwich)     # | 
					
						
							|  |  |  | # Email: neuralsandwich@gmail.com         # | 
					
						
							|  |  |  | # Modified to add support for Apple Mac   # | 
					
						
							|  |  |  | ########################################### | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-02 20:39:01 +00:00
										 |  |  | if [[ $(uname) == "Darwin" ]] ; then | 
					
						
							| 
									
										
										
										
											2012-12-02 19:36:33 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   function battery_pct_remaining() { | 
					
						
							|  |  |  |     if [[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then | 
					
						
							|  |  |  |       typeset -F maxcapacity=$(ioreg -rc "AppleSmartBattery"| grep '^.*"MaxCapacity"\ =\ ' | sed -e 's/^.*"MaxCapacity"\ =\ //') | 
					
						
							|  |  |  |       typeset -F currentcapacity=$(ioreg -rc "AppleSmartBattery"| grep '^.*"CurrentCapacity"\ =\ ' | sed -e 's/^.*CurrentCapacity"\ =\ //') | 
					
						
							|  |  |  |       integer i=$(((currentcapacity/maxcapacity) * 100)) | 
					
						
							|  |  |  |       echo $i | 
					
						
							| 
									
										
										
										
											2011-10-20 14:12:13 +08:00
										 |  |  |     else | 
					
						
							| 
									
										
										
										
											2012-12-02 19:36:33 +00:00
										 |  |  |       echo "External Power" | 
					
						
							| 
									
										
										
										
											2011-10-20 14:12:13 +08:00
										 |  |  |     fi | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2012-12-02 19:36:33 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   function battery_time_remaining() { | 
					
						
							|  |  |  |     if [[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then | 
					
						
							|  |  |  |       timeremaining=$(ioreg -rc "AppleSmartBattery"| grep '^.*"AvgTimeToEmpty"\ =\ ' | sed -e 's/^.*"AvgTimeToEmpty"\ =\ //') | 
					
						
							|  |  |  |       echo "~$((timeremaining / 60)):$((timeremaining % 60))" | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |       echo "∞" | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   function battery_pct_prompt () { | 
					
						
							|  |  |  |     if [[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then | 
					
						
							|  |  |  |       b=$(battery_pct_remaining) | 
					
						
							|  |  |  |       if [ $b -gt 50 ] ; then | 
					
						
							|  |  |  |         color='green' | 
					
						
							|  |  |  |       elif [ $b -gt 20 ] ; then | 
					
						
							|  |  |  |         color='yellow' | 
					
						
							|  |  |  |       else | 
					
						
							|  |  |  |         color='red' | 
					
						
							|  |  |  |       fi | 
					
						
							|  |  |  |       echo "%{$fg[$color]%}[$(battery_pct_remaining)%%]%{$reset_color%}" | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |       echo "" | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-02 20:39:01 +00:00
										 |  |  | elif [[ $(uname) == "Linux"  ]] ; then | 
					
						
							| 
									
										
										
										
											2012-12-02 19:36:33 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   if [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then | 
					
						
							|  |  |  |     function battery_pct_remaining() { echo "$(acpi | cut -f2 -d ',' | tr -cd '[:digit:]')" } | 
					
						
							|  |  |  |     function battery_time_remaining() { echo $(acpi | cut -f3 -d ',') } | 
					
						
							|  |  |  |     function battery_pct_prompt() { | 
					
						
							|  |  |  |       b=$(battery_pct_remaining) | 
					
						
							|  |  |  |       if [ $b -gt 50 ] ; then | 
					
						
							|  |  |  |         color='green' | 
					
						
							|  |  |  |       elif [ $b -gt 20 ] ; then | 
					
						
							|  |  |  |         color='yellow' | 
					
						
							|  |  |  |       else | 
					
						
							|  |  |  |         color='red' | 
					
						
							|  |  |  |       fi | 
					
						
							|  |  |  |       echo "%{$fg[$color]%}[$(battery_pct_remaining)%%]%{$reset_color%}" | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     error_msg='no battery' | 
					
						
							|  |  |  |     function battery_pct_remaining() { echo $error_msg } | 
					
						
							|  |  |  |     function battery_time_remaining() { echo $error_msg } | 
					
						
							|  |  |  |     function battery_pct_prompt() { echo '' } | 
					
						
							|  |  |  |   fi | 
					
						
							| 
									
										
										
										
											2011-10-20 14:12:13 +08:00
										 |  |  | fi |