GeekTool、その他デスクトップ解説1

[編集]
 昨日コメント欄でリクエストがあったので、GeekToolをはじめ私のデスクトップの解説をしていきたいと思います。
まずは全景。



GeekとOtakuの中間のような感じですね。右下がなければ100%Geekなのですが。ちなみに普段はこんなにアプリケーションを起動していませんし、表示しているGeekToolの項目も少ないです。あくまで解説用の完全装備画面ということで。

それでは解説。

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

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

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

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

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

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

日時、気象の表示
 レイアウトはこんな感じ↓



 アクティブになっている空欄の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

 ※仕様変更のため現在上記シェルではアイコン取得できません。
  新仕様対応版は下記を参照して下さい。
  Geektoolの天気アイコン

天気アイコン画像表示 (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/bashthen=$(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 ]; thenecho $1 ' ' $2elseecho $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/shURL="http://friendfeed.com/rayforce?format=atom"if [ $# -eq 1 ] ; then  headarg=$(( $1 * 2 ))else  headarg="-5"ficurl --silent "$URL" | grep -E '(title>|description>)' | \  sed -n '2,$p' | \  sed -e 's/&lt;title>//' -e 's/&lt;\/title>//' -e 's/&lt;description>/   /' \      -e 's/&lt;\/description>//' | \  sed -e 's/&lt;!\[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の情報表示
レイアウトはこんな感じ↓



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

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

GetiTunesName.scpt(曲名取得)
tell application "iTunes"set hoge to name of current trackreturn hogeend tell


GetiTunesArtist.scpt(アーティスト名取得)
tell application "iTunes"set hoge to artist of current trackreturn hogeend tell


GetiTunesAlbum.scpt(アルバム名取得)
tell application "iTunes"set hoge to album of current trackreturn hogeend tell


GetiTunesTime.scpt(演奏時間取得)
tell application "iTunes"set hoge to time of current trackreturn hogeend tell


GetiTunesPlayerPosition.scpt(経過時間取得)
tell application "iTunes"set hoge to player positionset min to "0"set sec to "00"
if 59 < hoge thenset min to hoge div 60set sec to hoge mod 60elseset min to "0"set sec to player positionend if
if sec < 10 thenset sec to "0" & secend ifreturn min & ":" & sec as textend tell

※上記経過時間取得はiTunes 10までのものです。iTunes 11で仕様変更がありました。11対応のAppleScriptは下記をご参照ください。
 ・iTunes 11 経過時間の仕様変更

次に、それぞれを参照する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項目にあります。



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

/の表示
echo /



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

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



【追記】
USBサブモニタ(800x600)を、情報表示用ディスプレイにしてみました。

サブモニタでの情報表示
情報表示用ディスプレイ配置変更

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


【追記2】
さらにサブモニタの表示&配置変更を行ないました。

モニタリング用サブモニタ

システムやネットワークの表示をシェイプし、カレンダーや天気アイコンを消去。
代わりに現在気温・湿度や天気予報、警報・注意報、最寄河川の水量、雨量などの天候情報を充実させています。



【GeekToolその他参照】
GeekTool ブログ内リンク集


  blogランキング→ にほんブログ村 音楽ブログへ

コメントの投稿

Secret

アイコンについて

はじめまして。
Macのデスクトップのカスタマイズを調べていてこのブログにたどり着きました。
初歩的な質問かもしれませんが、外付けHDDの名前がアイコンの右側にきてるのはどうやって設定してるんですか?

Re: アイコンについて

samuさん、コメントありがとうございます。

アイコンの件ですが、Finderの「表示」メニューから「表示オプションを表示」で、「ラベルの位置」を右側に設定します。
アイコンのサイズやFinderフォントのサイズもここで設定できますので、色々いじってみると面白いですよ。

Re:アイコンについて

ありがとうございます。色々いじってみます。

Re:アイコンについて

ありがとうございます。
ついでにもう一つ。アイコンの名前のラベルもGeekToolで作られたのですか?

それとも何か設定でラベルを作れるのでしょうか?

Re: Re:アイコンについて

ラベルはMacの標準機能ですね。
アイコン右クリック、もしくはアイコンを選択した状態でcommand+i です。
上記のスクリーンショットではグレーのラベルを貼ってあります。

Re:Re:Re:アイコンについて

ありがとうございます。
色々いじってみます( ^ω^ )

No title

天気、気温のテキスト表示 のコマンドで表示されないのですが何が問題なのでしょうか。

Re: No title

> 天気、気温のテキスト表示 のコマンドで表示されないのですが何が問題なのでしょうか。

すみません!
見直してみたら、コマンド記述をミスってました。
正しいものに差し替えましたので、お試しください。
申し訳ありませんでした。

Re:Re: No title

ありがとうございました、ちゃんと表示されました!

Re: Re:Re: No title

> ありがとうございました、ちゃんと表示されました!

blogを移転した際に、fc2の自動移転プログラムがコマンド列をhtmlタグと誤認したのが原因でした。
ご迷惑をおかけいたしました。

i tunes 情報

初めまして、geekについていろいろ調べてこのページにたどり着きました。
非常にわかりやすい解説ありがとうございます。

itunes のスクリプトまでは作成ができたのですがこのあと困ってしまいました。
Geek入力の
echo "`osascript /Users/アカウント名/Documents/GeekTool/GetiTunesName.scpt`"
アカウントはなんのアカウントを入れればいいのでしょう?
いくつか試したのですがGeekに表示されませんお助けください。

Re: i tunes 情報

utimomoさん、コメントありがとうございます。

アカウント名ですが、ログインしているユーザ名のことで、要はホームフォルダ名を入れればOKです。

http://blog-imgs-55.fc2.com/g/u/n/gunbird/geekhome.jpg
フォルダ構成が↑の時は、
[echo "`osascript /Users/gunbird/Documents/GeekTool/GetiTunesName.scpt`"]
になります。

itunesについて

すみません
私も上記の方と同じような質問になってしまうのですが、スクリプトは保存できたのですがどうしてもgeekが上手く表示できません
アカウント名というのはappleIDですよね?(違ってたらすみません!)
IDを入れても表示されないのですがなにか間違えてますでしょうか?
よろしくお願いします

Re: itunesについて

NOさん、コメントありがとうございます。

アカウント名はAppleIDではなく、MacOSにログインしているユーザアカウントです。
上記コメントの添付画像では、gunbirdというのがそれに当たります(この部分は使用している人によって違いますが、家の形のアイコンをしていますのですぐわかると思います)。
スクリプトファイルを上記コメントの添付画像の通りに置き、さらにShellを配置してからiTunesを再生してみてください。

もしわかりにくいようであれば、明日にでも詳細画像付きで記事にしますのでコメントください。

No title

実家に帰省していたのでコメント返信いただいたのに遅くなりました。
なぜかうまくいきません。
厚かましいのは承知ではございますが、当方初心者のためAppleScriptエディタもただしくつかえているのか自信がありません。スクリプトのところから画像つきで教えていただけると非常に助かります。

Re: No title

了解しました。
現在時間が取れないので、1/5(土)の記事で解説したいと思います。
しばらくお待ちください。

No title

1/4、時間が取れたので先にAppleScript編のみ記事作成しました。
GeekTool編は1/5に書く予定です。
http://gunbird.blog.fc2.com/blog-entry-2461.html

No title

後編も書き終わりました。
http://gunbird.blog.fc2.com/blog-entry-2462.html

わからないところ等あればコメントください。

No title

ご丁寧な解説ありがとうございました。
昨晩挑戦してみたところ曲名もろともばっちり表示されて非常に満足の行くデスクトップになりました。
ありがとうございました!!!!!!!

Re: No title

utimomoさん、iTunes情報が表示されたようでなによりです。

GeektoolはAppleScriptの結果を表示できるので、非常に便利です。
起動ディスクのフォーマット種別を表示したりと、「役に立たないけどなんだか格好いい」デスクトップが作れるのでその辺りも調べると結構面白いですよ。

アートワーク

他のソフトを使用せずにGeekToolだけでiTunesで再生中のアートワークを表示させることは出来るんでしょうか?
可能でありましたら、是非、その方法をおしえていただけませんか?

Re: アートワーク

JJさん、コメントありがとうございます。

アートワーク設定がしてあることが前提になりますが、AppleScriptと組み合わせていいなら可能ですよ。
AppleScriptでアートワークを取得してGeekToolで表示する形になります。
アートワーク取得AppleScriptはASH Planning様のブログが参考になると思います。
  http://ashplanning.blogspot.jp/2006/12/itunes.html

わからないようであれば記事にしますのでコメントください。

Re: Re: アートワーク

早速のご返答、有り難うございます。もうすこし質問させてください。
AppleScriptでアートワークファイルを任意のフォルダに書き出し、それをGeekToolで表示させるという方法は理解できるのですが、その場合、曲が変わる度にこのScriptを動作させる方法があるんでしょうか?
そうであれば、曲の切り替えとアートワークの表示を自動的に連動させる良い方法があるのでしょうか?
宜しくお願いします。

Re: Re: Re: アートワーク

「曲が変わる度」を検出するのは難しい(面倒くさいしメリットもあまりない)ので、GeekTool側でAppleScriptを定時実行設定にしておくのが現実的かつ簡単だと思います。
たとえばスクリプトを2秒ごとに実行、画像表示も同様に2秒ごとに実行する設定にしておけば、曲が変わってから2秒以内にアートワークが自動的に切り替わります。
記事本文中で「天気アイコン画像取得」を600秒ごとに行っていますが、これのより短期間バージョンといった感じでしょうか。
なお、アクティビティモニタで監視しながら作業を行ったのですが、負荷はほとんどかかっておりませんでした。

Re: Re: Re: Re: アートワーク

早速、教えていただいた方法を試してみたところ、うまく動作させることができました。
また、これまで使用していたTunesArtよりもCPUへの負荷がずっと少ないことも判明しました。
じつは私の環境では、ごく希にTunesArtによるCPU使用率が100%近くまで上がることがあり、恐ろしくて使用を控えていたのですが、今後はこの方法でアートワークを表示させることにします。
有り難うございました。

Re: Re: Re: Re: Re: アートワーク

お役に立てたようでなによりです。
TunesArtは私の環境でもそれなりに負荷がかかっています。
確かに使用は少し考えたほうがいいかもしれませんね。

念のためiTunesの曲変更通知を受け取る際に参考になりそうなサイト

「ザリガニが見ていた...。」さんの「見えない通知を捕まえて通知駆動アプリケーションを作る」
http://d.hatena.ne.jp/zariganitosh/20120918/notification_driven_applescript

RSSについて

rssの文が長すぎて入らないんですけど改善する方法教えていただけませんか?

Re: RSSについて

詳しい状況がわからないので想像でのコメントになりますが、

1.フォントを小さくする
2.Propertiesの「Force carriage Return」にチェックを入れ、ウインドウ端で文字を折り返す
3.sedでいらない文字や情報を消す

あたりでしょうか

例えば私の場合、3を使って↓のように縮めています。
http://blog-imgs-52.fc2.com/g/u/n/gunbird/geektooleqsed.jpg

No title

初めまして
こちらの記事を参考にさせてもらいながらgeektoolをいろいろいじっています
結構思い通りにできてきたのですが、上記の経過時間のscriptがうまく行きません
scriptを間違えなく入れても小数点以下の数値が12桁ついてしまうんです

これってエディタやiTunesのもんだいでしょうか?

Re: No title

コメントありがとうございます。

iTunes11もしくはOS10.6以降の仕様変更みたいですね。
小数点以下を切り捨てるAppleScriptを書くので、明日仕事から帰ったら記事にします。
ご確認ください。

仕様変更

記事更新しました。
ご確認ください。

http://gunbird.blog.fc2.com/blog-entry-2646.html

No title

早速回答頂きありがとうございます
無事にiTunes 11.0.4で小数点以下表示されずに設定できました
ただ秒数のカウントが一桁の場合、m:ssとならず、m:sとなってしまいます
ちなみにApple scriptで確認した時点でこの値を返してきます

なにかの設定ミスでしょうか?

Re: No title

おおっと申し訳ありません。
msecとするべきところをsecと記述していました。
記事を訂正しましたので、もう一度コピペして確認してみてください。

No title

申し訳ないなんてとんでもない!
無事にm:ss の形で表示出来るようになりました☆
これからも参考にさせてもらいます、ありがとうございました。

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

Re: No title

コメントありがとうございます。
私の環境でも今見たら表示されていませんでしたので、おそらくYahoo!の仕様変更によるものだと思います。
繁忙期で時間が取れないため、どこか落ち着いたところで記事にしたいのですが……そのころには他によい情報も出ているかもしれません。
SafariのWebインスペクタで調べれば解決するとは思いますが、時間が取れません……

No title

10/20、新仕様対応コマンド掲載しました。
http://gunbird.blog.fc2.com/blog-entry-2757.html

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

geektoolによるアートワーク表示について(非表示化)

はじめまして、Macのデスクトップカスタマイズでこちらにたどり着きました。
iTunesの曲表示とアートワーク表示には成功したのですが、iTunesを停止した際に表示を消す(非表示にする)動作をさせるにはどうしたらよいでしょうか。

Re: geektoolによるアートワーク表示について(非表示化)

volvo1030 さんコメントありがとうございます。

AppleScriptで記述するなら
1.iTunesがPouseかStopになった場合にアートワーク画像名を指定して削除する

2.アートワークと同じ大きさの空の画像ファイルを用意し、iTunesがPouseかStopになった場合にアートワークと同名で上書コピーする
と言った感じですかね。

私はPedro's Spaceというサイトの2014年1月8日の記事を参考に改変したAppleScriptを使っています。
上記2の方法になりますが、他者著作物の改変なので載せることは出来ません。
「Pedro's Space Geektool」でGoogle検索すると該当記事が一番上にきますので、参考にどうぞ。

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます
プロフィール

hallucinations

Author:hallucinations
ほぼ毎日更新
・2011/12/03以前の記事はエキサイトブログに掲載していたものです
・移転に伴い現在レイアウト修正作業中です

カレンダー
03 | 2017/04 | 05
- - - - - - 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 - - - - - -
FC2カウンター
リンク
vin-PRAD    学園催
  

にせぱん    Soda fountains
  
 
Amazon おまかせリンク