GeekTool配备

GeekTool配置

一、已登录时间

 

 

uptime | awk '{print "已登录时间 : " $3 " " $4 " " $5 }' | sed -e 's/.$//g'; \

 

二、电池使用情况

 

 

#! /bin/sh
#
# Battery status script, writen for GeekTool usage. Free to
# use as you please.
#
# Prints the current charge, time remaining on battery power or the AC
# power status

# Create array (Capacity,Voltage,Flags,Current,Amperage,Cycle Count)
status=(`ioreg -w0 -l|grep LegacyBatteryInfo|sed -e 's/[^1234567890]/ /g'`)

# Fix Amperage (convert large number to negative one)
status[4]=$(expr ${status[4]} + 0) 

# if charger connected
if [ $((${status[2]} & 1)) == 1 ]; then
 #if battery is charging
 if [ $((${status[2]} & 2)) == 2 ]; then 

 # Calculate minutes until battery is fully charged
 if [ ${status[4]} -lt 0 ]; then
 mins=''
 else
 mins=`echo "(${status[0]}-${status[3]})*60/${status[4]}"|bc`
 if [ $mins > 59 ]; then
 mins=`printf ", %d:%02d until battery is fully charged" $(( mins / 60 )) $(( mins % 60 ))`
 else
 mins=`printf ", 0:%02d until battery is fully charged" $mins`
 fi
 fi
 echo `echo "${status[3]}*100/${status[0]}"|bc`"% (charging$mins)"
 else
 perc=`echo "${status[3]}*100/${status[0]}"|bc`
 if [ $prec -lt 100 ]; then
 echo "$perc% (battery not charging)"
 else
 echo "100% (battery is fully charged)"
 fi
 fi

# if charger not connected
else
 # Calculate minutes until empty
 if [ ${status[4]} -ge 0 ]; then
 mins=''
 else
 mins=`echo "- ${status[3]}*60/${status[4]}"|bc`
 if [ $mins > 59 ]; then
 mins=`printf "(%d:%02d remaining on battery)" $(( mins / 60 )) $(( mins % 60 ))`
 else
 mins=`printf (0:%02d remaining on battery)" $mins`
 fi
 fi

 echo `echo "${status[3]}*100/${status[0]}"|bc`"%$mins"
fi

 

三、内存使用情况

 

 

top -l 1 | awk '/PhysMem/ {print "已使用内存 : " $8 " "}' ; \
top -l 1 | awk '/PhysMem/ {print "非活跃内存 : " $6+$10"M"}'

 

四、CPU使用情况

 

 

top -l 2 | awk '/CPU usage/ && NR > 5 {print $1, ":", $3, $4, $5, $6, $7, $8}'

 

五、硬盘使用情况

 

 

df -g | awk '/\/dev\/disk0/ {print $2-$3"G of "$2"G remaining ""("$5")" }';

 

六、废纸篓使用情况

 

 

du -sh ~/.Trash/ | awk '{print "废纸篓 : " $1}'

 

七、网络配置

 

 

myen1=`ifconfig en1 | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}'`
if [ "$myen1" != "" ]
then
echo "$myen1"
else
echo "INACTIVE"
fi
wip=`curl --silent http://checkip.dyndns.org | awk '{print $6}' | cut -f 1 -d "<"`
echo "$wip"

 

八、iTunes当前播放信息

 

首先,在iTunes目录下新建一个名为itunesinfo.scpt的文件,内容如下:

 

 

tell application "System Events"
	set powerCheck to ((application processes whose (name is equal to "iTunes")) count)
	if powerCheck = 0 then
		return ""
	end if
end tell
tell application "iTunes"
	try
		set playerstate to (get player state)
	end try
	if playerstate = paused then
		set trackPaused to " (paused)"
	else
		set trackPaused to ""
	end if
	if playerstate = stopped then
		return " "
	end if
	set trackID to the current track
	set trackName to the name of trackID
	set theStream to the current stream title as text
	if theStream is not "missing value" then
		set totalData to "Stream : " & trackName & trackPaused & "
Title  : " & theStream
	else
		set artistName to the artist of trackID
		set albumName to the album of trackID
		set totalData to "Track  : " & trackName & trackPaused & "
Artist : " & artistName & "
Album  : " & albumName
	end if
	return totalData
end tell

 

然后,在GeekTool中写入如下脚本:

 

 

osascript /Users/gaohf/Music/iTunes/itunesinfo.scpt
 

九、天气情况

 

#!/bin/sh
weather=$(curl --silent "http://xml.weather.yahoo.com/forecastrss?p=CHXX0520&u=c" | grep -E '(Current Conditions:|C<BR)' | \
  sed -e 's/Current Conditions://' -e 's/<br \/>//' -e 's/<b>//' -e 's/<\/b>//' -e 's/<BR \/>//' -e 's/<description>//' -e 's/<\/description>//')
# doing it this way gets rid of a preceeding blank line
echo ${weather}