人気ブログランキング | 話題のタグを見る
> GeekTool、その他デスクトップ解説1
:FC2ブログに引っ越しました。FC2ではExciteブログでは使えなかったHTMLタグが使えるようになり、コマンド等がより見やすくなっています。また、Yahoo! Weatherの仕様変更で表示できなくなった天気アイコンの対応方法、iTunesの仕様変更対応Scriptも新ブログに載せてあります。

 FC2ブログ版→ GeekTool、その他デスクトップ解説1

今後とも春樹の小部屋を宜しくお願いいたします。

*****

 昨日コメント欄でリクエストがあったので、GeekToolをはじめ私のデスクトップの解説をしていきたいと思います。
まずは全景(画像クリックで拡大します)。
GeekTool、その他デスクトップ解説1_a0083335_2213894.jpg
GeekとOtakuの中間のような感じですね。右下がなければ100%Geekなのですが。ちなみに普段はこんなにアプリケーションを起動していませんし、表示しているGeekToolの項目も少ないです。あくまで解説用の完全装備画面ということで。

それでは解説。

 まずは壁紙です。壁紙はGeek御用達、三階ラボ様の壁紙カレンダーを使用しています。この壁紙の文字色に合わせてGeekToolその他の文字色も決めているので、非常に重要です。Geektoolで文字を入れることによって素晴らしいデザインが壊れているような気がしないでもないですが、そこはそれ、気にしない気にしない。

 そしてアイコン。アイコンはSlick Drivesを使用。大きさは68×68、テキストサイズは12pt。そのままだとフォントが明るすぎるので灰色のラベルを貼ってあります。

 次はGeekTool。GeekToolは様々な情報をデスクトップ上に表示する(UNIXコマンドの結果をデスクトップに表示する)ツールです。私はあまりマニアックな表示はしておらず、

 ・日時、気象の表示
 ・基本的なシステム監視
 ・Twitterの表示
 ・新着メールの表示
 ・iTunesの情報表示

くらいにしか使っておりません。
UNIXコマンドは68user's page様の「UNIXの部屋」他、多数のUNIXコマンド解説サイトを参考にしています。

それでは一つずつ見ていきます。

日時、気象の表示
 レイアウトはこんな感じ↓
GeekTool、その他デスクトップ解説1_a0083335_79684.jpg

 アクティブになっている空欄のShellは、天気アイコンの画像取得用Shellです。
 日時の表示はMac Explorer様の記事を参考にしています。また、気象の表示はMacの手書き説明書様の記事を参考にしていますので、そちらを参照してください。念のため、川崎市の天気表示を載せておきます。

日付表示 (Shell)
date "+%Y.%m.%d(%a)"

時間表示 (Shell)
date "+%H:%M:%S"

天気アイコン画像取得 (Shell)
curl --silent "http://weather.yahoo.com/japan/kanagawa-prefecture/kawasaki-shi-1117502/" | grep "forecast-icon" | sed "s/.*background\:url(\'\(.*\)\')\;\ _background.*/\1/" | xargs curl --silent -o /tmp/weather.png

天気アイコン画像表示 (file)
file:///tmp/weather.png

天気、気温のテキスト表示 (Shell)
curl --silent "http://xml.weather.yahoo.com/forecastrss?p=JAXX0036&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>//'

Refresh every欄(更新時間欄)は、日付が60s、時間が1s、気象が600sです。


基本的なシステム監視
 本来色々と表示出来るのですが、自分は空き容量のみ表示しています。Uptimeのみ、Yet another uptime geekletに手を加えて使用しています。

OS情報 (Shell)
sw_vers

CPU Idle (Shell)
top -l 2 | awk '/CPU usage/ && NR > 5 {print "CPU Idle: " $12}';

RAM Free (Shell)
top -l 1 | awk '/PhysMem/ {print "RAM Free: " $10}';

HDD Free (Shell)
df -hl | grep 'disk0s2' | awk '{print "HDD Free: " $4" ( " $5 " used ) "}'

Uptime(稼働時間) (Shell)
#!/bin/bash
then=$(sysctl kern.boottime | awk '{print $5}' | sed "s/,//")
now=$(date +%s)
diff=$(($now-$then))
days=$(($diff/86400));
diff=$(($diff-($days*86400)))
hours=$(($diff/3600))
diff=$(($diff-($hours*3600)))
minutes=$(($diff/60))
function format {
if [ $1 == 1 ]; then
echo $1 ' ' $2
else
echo $1 ' ' $2's'
fi
}
echo 'Uptime: '`format $days "d"` `format $hours "h"` `format $minutes "m"`

ネットワーク監視 (Shell)
lsof -P -i -n | cut -f 1 -d " " | uniq

プロセス監視(CPUソート) (Shell)
ps -acrx -o %cpu=CPU,comm | head -n 16

※プロセス監視をメモリソートにするには、上記-acrxを-acmxにします。

Refresh every欄は、OS情報が0s、プロセス監視が15s、他が30sです。


Twitterの表示
 Twitter専用というよりはRSSの表示です。狭いデスクトップになるべく多くの情報を表示するため、TwitterだけではなくほかのRSSとひとまとめにして表示しています。Twitter他のRSSを取得するためのツールはいくつかありますが、自分はFriendfeedを使用しています。こちらの過去記事参照。

FriendfeedのRSS取得
#!/bin/sh
URL="http://friendfeed.com/rayforce?format=atom"
if [ $# -eq 1 ] ; then
headarg=$(( $1 * 2 ))
else
headarg="-5"
fi
curl --silent "$URL" | grep -E '(title>|description>)' | \
sed -n '2,$p' | \
sed -e 's/<title>//' -e 's/<\/title>//' -e 's/<description>/ /' \
-e 's/<\/description>//' | \
sed -e 's/<!\[CDATA\[//g' |
sed -e 's/\]\]>//g' |
sed -e 's/<[^>]*>//g' |
head $headarg | sed G | fmt

上記のURL欄に取得したいRSSのURLを入力します。headarg欄が取得する記事の数、sed -nの後の数字が取得をはじめる行です。Friendfeedの場合、1行目はサイトタイトルのため、2行目から取得しています。


新着メールの表示
 新着メールの表示はAppleScriptと組み合わせて表示しています。使用するAppleScriptはMac OS X Hintsの記事を参照してください。リンク先のスクリプト構文を、スクリプトエディタに貼付けて保存するだけです。自分は書類フォルダにGeekToolというフォルダを作って、GetNewMail.scptという名前で保存しました。スクリプトエディタはアプリケーションフォルダの中に入っています。見つからなければ「スクリプトエディタ」でSpotlight検索すればでてきます。

新着メールの表示 (Shell)
echo "`osascript /Users/アカウント名/Documents/GeekTool/GetNewMail.scpt`"

上記アカウント名に自分のアカウント名を入力して使用します。


iTunesの情報表示
レイアウトはこんな感じ↓
GeekTool、その他デスクトップ解説1_a0083335_1518672.jpg

左上が空いているのはアルバムジャケットを表示するためです。

 iTunesの情報表示も、新着メールの表示と同様にAppleScriptを使用します。AppleScriptはiTunes for Mac まとめ様の記事を参照して作成しています。まず下記のAppleScriptを作成して書類フォルダ内のGeekToolフォルダに保存します。

GetiTunesName.scpt(曲名取得)

tell application "iTunes"
set hoge to name of current track
return hoge
end tell


GetiTunesArtist.scpt(アーティスト名取得)

tell application "iTunes"
set hoge to artist of current track
return hoge
end tell


GetiTunesAlbum.scpt(アルバム名取得)

tell application "iTunes"
set hoge to album of current track
return hoge
end tell


GetiTunesTime.scpt(演奏時間取得)

tell application "iTunes"
set hoge to time of current track
return hoge
end tell


GetiTunesPlayerPosition.scpt(経過時間取得)

tell application "iTunes"
set hoge to player position
set min to "0"
set sec to "00"

if 59 < hoge then
set min to hoge div 60
set sec to hoge mod 60
else
set min to "0"
set sec to player position
end if

if sec < 10 then
set sec to "0" & sec
end if
return min & ":" & sec as text
end tell

次に、それぞれを参照するShellを配置します。

曲名表示
echo "`osascript /Users/アカウント名/Documents/GeekTool/GetiTunesName.scpt`"

アーティスト名表示
echo "`osascript /Users/アカウント名/Documents/GeekTool/GetiTunesArtist.scpt`"

アルバム名表示
echo "`osascript /Users/アカウント名/Documents/GeekTool/GetiTunesAlbum.scpt`"

演奏時間表示
echo "`osascript /Users/アカウント名/Documents/GeekTool/GetiTunesTime.scpt`"

経過時間表示
echo "`osascript /Users/アカウント名/Documents/GeekTool/GetiTunesPlayerPosition.scpt`"

Refresh every欄は、もちろん1sです。

 時間表示は画面内のおさめるために演奏時間を左寄せ、経過時間を右寄せで表示しています。表示の設定はStyleのAlignment項目にあります。
GeekTool、その他デスクトップ解説1_a0083335_19412119.jpg

なお一番上の全景画像で経過時間と演奏時間の間にある「/」は、テキストを表示しているだけでなので、普通にechoコマンドで設定してください。

/の表示
echo /


とりあえずGeekToolで表示している項目は以上です。
GeekToolで表示している、というよりはAppleScriptを表示している、と言った感じですね。
分からないところがあればコメントください。
明日はGeekTool以外のデスクトップアプリの解説をします。

それでは皆様、また明日。


【追記】
USBサブモニタ(800x600)を、情報表示用ディスプレイにしてみました。
GeekTool、その他デスクトップ解説1_a0083335_13361824.png

本日解説した項目以外に、カレンダー・メモリ消費順プロセス・各種IPアドレス・N/W転送状況・N/W通信速度・スワップファイル容量を追加しています。


【その他GeekTool 新ブログ内リンク】
GeekTool ブログ内リンク集
by hallucinations | 2011-04-24 05:53 | ソフト&サービス

FC2ブログに引っ越しました → http://gunbird.blog.fc2.com/
by hallucinations
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
> リンクとか
 blogランキング
 春樹のやる気を応援する
   投票↓
   にほんブログ村 音楽ブログへ
   さらに投票↓
   ブログランキング・ブログの殿堂
   も一つ投票↓
   ブログランキング・人気blogランキング


 vin-PRAD
 健康音楽!
   
 学園催
 春樹のお気に入り
   
 にせぱん
 Studio fake*panda
   
 Soda fountains
 Official Web Site
   


 Last.fm
   


 アクセスカウンタ
 本日のアクセス数
   
 昨日のアクセス数
   
 総アクセス数
   
 設置日:2007/08/15


 Blogopolis