- 注册时间
- 2010-2-21
- 最后登录
- 2012-2-5
- 在线时间
- 1314 小时
- 威望
- 1939 金币
- 阅读权限
- 255
- 积分
- 1939
- 帖子
- 1278
- 分享
- 0
- 精华
- 3
- UID
- 151083
  
- 最后登录
- 2012-2-5
- 在线时间
- 1314 小时
- 威望
- 1939 金币
- 苹果
- 1472
- 注册时间
- 2010-2-21
- 阅读权限
- 255
- 帖子
- 1278
- 分享
- 0
- 精华
- 3
- 积分
- 1939
- UID
- 151083
|
发表于 2010-4-11 22:29:17
|显示全部楼层
本帖最后由 macing2010 于 2010-8-3 10:04 编辑
终极应用——Geektool
作者:各种高手 译者:macing2010
Geektool是一个非常好玩的工具,用它可以做出漂亮又实用的桌面。由于是国外的软件,在国内使用还不是很广泛,所以我找了一些关于Geektool的文章翻译于此。当然,软件的使用还只是技术层面的,我们要玩得心动一点,所以在文章后面我转了几个比较经典的桌面供大家参考,也期待大家更好的作品。要是你觉得你的桌面还不错,可以贴在下面供大家欣赏。
软件下载地址:
http://projects.tynsoe.org/en/geektool/download.php
入门视频,我已加了中文字幕:
http://v.youku.com/v_show/id_XMTkwMDkzNjA4.html
设置面板中文说明:
到这里相信大家对Geektool的使用有了一定的认识,file和image部分应该可以自行使用了。下面我来说下shell部分。shell是Geektool的精髓所在,自定义性非常强。国外shell大牛们也写出了不少比较好的Geeklets,这些Geeklets涵括了各方面的应用。由于比较杂,我不能一个个都搜集来,所以我只选录部分比较常见的应用。也由于多而乱,所以没有英文说明的翻译,只有我加的用法说明。这些Geeklets都是国外的人写的,很多输出显示部分都是英文的。我们不懂shell,但是可以把这一些显示部分本地化。即运行command后,看显示部分哪里是英文的,然后找到它在command中的位置,改成中文。另外,一些双引号之间也是可以加文字的,这个请自行理解。
时间:
时间日期代码(注意大小写不同,意义是不一样的):
月份:m
日期:d或者D(此时以月/日/年形式输出)
星期:A或者a(此时不输出星期两个字)
小时:l或者I(可以显示为0X)
分钟:M
秒:S
上下午:p
时间日期的基本格式是:date +"%X"(X就是上面列的代码)。其中如""、%等符号须在英文输入法下,%X上的""/''(单/双引号效果是一样的)不是必须的,其作用只是让代%x与下个%x之间可以有空格。以时间为例:我们现在要输出:当前时间(演示空格) 8 : 21 : 31,代码如下:date +"当前时间 %l : %M : %S"。我们可以把星期、日期、时间等分别放在不同的显示框中(date +"%X",date +"%X",date +"%X"……),然后根据壁纸进行排版,并把时间、日期等显示框放在一个名为时间的组里。如果以后壁纸换了,或者不想再显示时间了,可以直接勾选组前的勾。组的应用非常方便。
日历:
有三种显示方式,每行代码为一种,并且得选中英文间距相同的字体,不然日期跟星期对不上- cal | sed "s/^/ /;s/$/ /;s/ $(date +%e) / $(date +%e | sed 's/./#/g') /"
复制代码 这个可以让当天显示为##,你要不喜欢#,就把命令中的#改成其他的¥%@……都可以
最后是可以让当天显示为红色的命令:path为calmest路径。
IP状况:
这个显示格式可能不怎么美观,先运行,然后再根据自己的喜好修改源代码的显示输出部分。- #! /bin/bash
- myen0=`ifconfig en0 | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}'`
- if [ "$myen0" != "" ]
- then
- echo "Ethernet : IP - $myen0"
- else
- echo "Ethernet : INACTIVE"
- fi
- myen1=`ifconfig en1 | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}'`
- if [ "$myen1" != "" ]
- then
- myvar1=`/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I | grep -e "SSID:" | tail -n 1 | awk '{print $2}'`
- myvar2=`/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I | grep -e "channel:" | awk '{print $2}'`
- echo "AirPort : IP - $myen1
- Network - $myvar1
- Channel - $myvar2"
- else
- echo "Airport : INACTIVE"
- fi
复制代码 磁盘使用情况:
当然,其中的英文可以随便改成中文的。- df -h | grep disk0s2 | awk '{print "Macintosh HD:", $2, "total,", $3, "used,", $4, "remaining"}'
复制代码 内存:- top -l 1 | awk '/PhysMem/ {print "自定义区" $8 " "}' ;
复制代码内存那条代码好像只能显示占用的内存,加个$10就可以显示free的了
$2=wird $4=active $6=inactive ——penny9053(63楼)
电源状态:- my_ac_adapt=`ioreg -w0 -l | grep ExternalConnected | awk '{print $5}'`
- if [ "$my_ac_adapt" == "Yes" ]
- then
- echo "Power : External"
- else
- cur_power=`ioreg -w0 -l | grep CurrentCapacity | awk '{print $5}'`
- max_power=`ioreg -w0 -l | grep MaxCapacity | awk '{print $5}'`
- bat_percent=`echo "scale=2;$cur_power / $max_power" | bc`
- bat_percent=`echo "$bat_percent * 100" | bc | sed 's/100//'`
- cyc_count=`ioreg -w0 -l | grep "Cycle Count" | awk 'BEGIN { FS = "=" } ; {print $8}' | awk 'BEGIN { FS = "}" } ; {print $1}'`
- echo "Power : Battery ($bat_percent%)"
- echo "Cycles : $cyc_count"
- fi
复制代码 废纸篓当前大小:- du -sh ~/.Trash/ | awk '{print "自命名: " $1}'
复制代码 上次开机后运行时间:- uptime | awk '{sub(/[0-9]|user\,|users\,|load/, "", $6); sub(/mins,|min,/, "min", $6); sub(",", "min", $5); sub(":", "h ", $5); sub(/mins,|min,/, "min", $4); ; sub(" h ", " h ", $4); sub(/days,/, "days ", $4); sub(/days,/, "days ", $4); sub(":", "h ", $3); sub(",", "min", $3); print $3 $4 $5 $6 " awake"}' | sed -e 's/1days/1day /g' -e 's/min1/min/g' -e 's/usermin//g'
复制代码
你的Mac信息:- scutil --get ComputerName;
- sw_vers | awk -F':\t' '{print $2}' | paste -d ' ' - - -;
- sysctl -n hw.memsize | awk '{print $0/1073741824" GB RAM"}';
- sysctl -n machdep.cpu.brand_string;
复制代码 进程:
最后面的13是显示进程的数目,可以根据美观及使用效果随便自定义。- ps -amcwwwxo "command %mem %cpu" | grep -v grep | head -13
复制代码
网络传输速度:
如果你不是用的Ariport,就把下面代码的en1改为en0。或者你无线、有线都有用,那就做两个。- #!/bin/sh
- # created by chris helming.
- # chris dot helming at gmail
- # get the current number of bytes in and bytes out
- myvar1=`netstat -ib | grep -e "en1" -m 1 | awk '{print $7}'` # bytes in
- myvar3=`netstat -ib | grep -e "en1" -m 1 | awk '{print $10}'` # bytes out
- #wait one second
- sleep 1
- # get the number of bytes in and out one second later
- myvar2=`netstat -ib | grep -e "en1" -m 1 | awk '{print $7}'` # bytes in again
- myvar4=`netstat -ib | grep -e "en1" -m 1 | awk '{print $10}'` # bytes out again
- # find the difference between bytes in and out during that one second
- subin=$(($myvar2 - $myvar1))
- subout=$(($myvar4 - $myvar3))
- # convert bytes to kilobytes
- kbin=`echo "scale=2; $subin/1024;" | bc`
- kbout=`echo "scale=2; $subout/1024;" | bc`
- # print the results
- echo "in: $kbin Kb/sec"
- echo "out: $kbout Kb/sec"
复制代码 天气及天气图标:
这部分是比较复杂的部分。我找到了两种天气代码。一种显示结果比较复杂,另一种很简洁。天气图标是跟在复杂版天气代码后面的。所以要想有图标就必须运行复杂版的Geeklets,然后再拖个image把图标地址复制进去。但是,可能更多人不喜欢放很多复杂的东西到自己的桌面上,而漂亮的天气图标都是必须要有的。所以一个妥协办法就是:运行复杂版的天气代码以获得天气图标,然后把复杂的天气显示窗口完全透明,最后再添加那个简单的天气代码。
既然是本地天气,那么就必须选择不同地域的天气了。这个选择的过程是更改代码中涉及到地域的相关代码。而这部分复杂版代码和简洁版代码的设置方法是不同的。复杂版天气代码的修改方法是:打开http://weather.yahoo.com/,用拼音搜索自己的城市,然后在代码中把URL地址替换就行了(代码中有提示)。
而简洁版天气代码修改方法就跟刚才的不一样了,需要查看刚才打开了的Yahoo天气网页的源码。按图示部分可找到,然后在代码中替换。
大连的可以直接用这个。
简洁版:- curl --silent "http://xml.weather.yahoo.com/forecastrss?p=(CHXX0019替换部分,替换完把括号去掉,后面的u=c中c是摄氏度的意思,可以改为F)&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>//'
复制代码 复杂版:- curl --silent -o /tmp/weather.html (http://weather.yahoo.com/china/liaoning/dalian-2147986/替换部分,完成后请将括号去掉); curl --silent -o /tmp/weather.png $(grep "div\ class=\"forecast-icon\"\ style=\"background:url" /tmp/weather.html| awk -F"'" '{ printf $2 }');for NUM in $(grep -n "<li><strong>.*\n" /tmp/weather.html|cut -d":" -f1); do TARGET=$((NUM+1)) ; sed -n "$NUM"p /tmp/weather.html|sed 's|<li><strong>||g'|sed 's|</strong>||g'| sed 's/^[\t]*//'; sed -n "$TARGET"p /tmp/weather.html ; done
复制代码 天气图标(拖一个Image出来,把地址复制进去就行了):- file://localhost/tmp/weather.png
复制代码
iTunes:
此部分需要与Applescript联用。脚本的用法是:- osascript /路径/iTunes.scpt
复制代码
这里有更好的脚本,以及可以有专辑封面。请移步:http://www.macfans.com.cn/thread-259267-1-3.html |
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
|