Blog

Published on

RSS

デスクトップ・カスタマイズ with GeekTool

お気づきの方もいるかと思いますが、デスクトップいじりがそれなりに好きです。以前から一度この辺りのことをBlogに書こう書こうと思いながらも現在に至るまで書かずじまいでいたのですが、今回OSもLionになったことだし、そろそろ書いてみます。

まず、現在のデスクトップはこんな感じです。

[sub monitor]
sub display (1024x800) zoom

といっても、私は自宅では2画面使いなので、これはその2画面の内のサブディスプレイの方です。メインディスプレイは特に何も出してないので面白くないかなと思いサブディスプレイのみにしぼって書きます。まぁ、ご覧の通り基本はデスクトップカスタマイズでおなじみのGeektool。というわけで本稿もGeekToolでのカスタマイズについてが中心となります。


サブディスプレイの役割

最初に予備知識として軽く使われ方の説明。机の正面にメインのディスプレイを置きそこで普通の作業をして、サブディスプレイ(MacBookのディスプレイ)はそのメインの右側にあります。基本的には何も置かず、場合によって参考資料となる画像や辞書.app, Terminal.app辺りなんかを開いてます。まさにサブ的利用です。ので、わりと空いていることが多く、せっかくなので色々モニタしたい情報を出しています。サイズは13inchで解像度は1024x800なんで、現在としては少々小さめでしょうか。

Macに向かってる時は音楽流しっぱなのでiTunesで再生中の曲情報を出してます。それが左側のエリアですね。そして右側にパネル風にちらりと見たい情報を一括して出してます。Geektoolの使用例を色々見てると、デスクトップピクチャと合わせて画面全体を使ってシャレオツに仕上げてるのもけっこう見かけるのですが、あんまり背景と一体化してると見づらいし分散してると他のウィンドウの下敷きになってしまうので、見やすさ重視でやってます。

デスクトップピクチャも無地に近いのが好きなのでこんな感じです。以前はずっとMacOSにデフォルトで付いてきてた青いヤツ使ってました。今のこれはネットで配布してたのを拾ってきて色を弄って使ってます。ちなみにメインディスプレイも同じデスクトップピクチャです。

iTunes再生曲

[screen shot]

まず左側のiTunesまわりをまとめて解説。

再生曲情報はGeekToolではなく専用のソフトウェアを組み合わせて使っています。GeekToolだけでも同じようなことはできますが、曲変わりのエフェクトとかiTunesが立ち上がってない時の処理とか小回りがやっぱ専用のソフトの方が効くので。

曲情報

曲タイトルなどのジャケ写を除く基本曲情報はSynergyです。以前はジャケ写もSynergyで出していたのですがLion対策がまだみたいなので、ジャケ写表示は今は後述のMousquakeという別ソフトにやらせてます。

Synergyはかれこれもう7年以上使ってます。この手のiTunes情報表示系ではかなりの古参ソフト。シェアウェアなんですがもう十分減価償却は済んでいるし、愛着もあり手放せません。今となってはこの手のジャケ写やタイトルを表示するソフトは山ほどあり、しかもそっちの方がスキンだなんだと融通が利くのですが、このSynergyの特徴は、再生曲の「年」を表示してくれる。これ、意外と他にできるソフトがないんです。私的には年はとても大事なのでこれがSynergyを手放せない最大の理由となっています。メニューバーにiTunesのコントローラーが出るので操作はそっちでやってます。

Synergy
[icon]
iTunes情報表示 / 5€ / site
iTunesで再生中の曲の情報をフローティング表示する、また、メニューバーにiTunesのコントローラを出す。

アートワーク & ボリュームスライダ

アートワークとiTunesのボリュームスライダはMousqueakというソフトを使っています。Mousqueakは面白いソフトで、メインはこのボリュームスライダみたいなのですが、他にもジャケ写や曲情報パネル等がモジュール式で自由に追加できるのです。カスタマイズ性も高く、なかなか愉快。ひとまずはこのコンパクトなiTunesボリュームスライダが使いたくて利用し始めました。

Mousqueak
[icon]
iTunes情報表示 / free / site
同じくiTunesで再生中の曲の情報表示。モジュール式なのが面白い。iTunesのボリュームバーが使えるのが特徴。

歌詞

歌詞の表示はDesktopLyricsというソフトです。パネルとかではなく直接デスクトップ上に文字が出せて、かつ歌詞が長い時はページ分割も自動でしてくれるので、なかなか小回りの効くヤツです。

DesktopLyrics
[icon]
iTunes情報表示 / free / App Store
iTunesで再生中の曲の歌詞を表示。

こうやって改めて見ると、iTunesで再生中の曲の情報を出すっていうだけなのに3つもソフト使ってる….。あんまりスマートではないなと思うのですが、なかなか全部を兼ね揃えるソフトというものがなく、結果こんな自体に。でもこれでひとまず今のところやりたいことは一通りカバーできてます。

情報パネル

そして右側の情報パネル。こっち側はバリバリのGeekToolです。Dashboardに行くまでもなくちらっと見たときにわかったら便利だな、と思うようなことをまとめて表示させてます。

基本的にはIllustratorで背景となるパネルやアイコンなどが描かれたひな形のpng画像を作り、その上に、状況によって変わるデータをGeekToolやその他補助ソフトで表示させています。

GeekToolはほとんどShellスクリプトです。多分自分で書いてるのがわりと多い。ので、せっかくなのでそのソースも晒しながらいこうと思います。

GeekTool
[icon]
デスクトップカスタマイズ / free / site
シェルやスクリプトの出力結果や任意の画像をデスクトップにはりつけられる、デスクトップカスタマイズのための定番ソフトウェア。

では、上から順番に。

ちなみに現在日本国外に在住しているため、現地情報と日本の情報の2つを出したりしています。

Time

[screen shot]

今何時のコーナー。

時計は大きい方が現在時間、小さい時計は日本時間です。やはりアナログ時計の方が感覚的に時間を把握しやすいので重宝してます。とくに今自室に時計がないので。日本時間がぱっとわかるのもかなり便利。時計は独立ソフトのSimpleFloatingClockっていうソフトなのですが、配布元サイトが消えてますね、今。もう開発中止なのかしら。復帰してますね。似たソフトではCloCalXってのがあって以前はそれを使っていたのですが、SimpleFloatingClockは複数個の時計を同時に出せるので現在はこっちを使っています。これだと文字盤のカスタマイズもできるので、自分でIllustratorで描いたのを使ってます。

日めくりカレンダーみたいなヤツはGeekToolです。曜日は圧倒的に漢字の方がわかりやすいんで、ここだけあえての日本語表記。日付もよく今日の日付を忘れるので大きめに、逆に月がわからなくなることはまずないので小さめに出してます。けどとっさに月の英名がでないことがあるので(笑)そんなとき用の英語表記。

GeekToolのソースはそれぞれ下記の通り。

date "+%B"
日にち
date "+%d" | awk '{sub(/^0/,"")}{print;}'
曜日
date "+%a"
SimpleFloatingClock
[icon]
時計 / free / site
比較的カスタマイズの自由度の高いシンプルな時間ソフト

Weather

[screen shot]

次はお天気コーナー。ここは全てGeekTool。様々なお天気サイトからcurlで情報を拾って、grepやPerlの正規置換でバンバン切り出してます。

左側が現在の情報ですね。外気温と天気、それに日の出/日の入り時間と現在のUV-Index。

現在の天気は外見ればわかるだろ、ってことで参考程度に小さめに。気温はとても気になるので大きめ、ここも見る率高いです。

ドイツは季節によって日照時間がガラッと変わるので、明るい時間帯を一応把握しておきたい。今とか見ての通り日暮れが夜10時近くとかですからね、意味がわかんない。

UV-Indexは押さえておきたい。本当は「今日1日のUV-Indexグラフ」とかあったらそれを丸ごと持ってきたいくらいなのですが、このUV-Indexを引けるサイトがなかなか見つからず。せめて現在ピンポイントよりも今日のmax.の方が助かるのですがそれも叶わなかったので妥協の現在Index。でもないよりは全然良い。

右側は天気予報。今日・明日の天気、最高/最低気温と降水確率。気になるので今日の東京も。こっちは降水確率はメジャーじゃないのか、データを引っぱってこられるサイトがなかなか見つからず地味に苦労しました。お天気アイコンはYahoo! Weather APIから天気コードを読み込んで、それを元にこっちで用意した天気アイコン画像を選んで表示する、という手はずを踏んでいます。ここはPerlでスクリプト書いてGeekToolで蹴ってます。アイコンはフォントのお天気記号をベースにIllustratorで作ってpngで書き出し。

ここで使っている天気アイコン表示させるスクリプトはGeekToolでオリジナル天気アイコンで公開してます。 予報気温の表示についてはGeekToolで天気予報の最低/最高気温表示を参照して下さい。

お天気データは住んでる場所によってかなり違うと思うのでソースは割愛気味にします。住んでる市のサイトとかからデータ引っぱってるし。

日の出/日の入り
curl --silent "http://weather.yahooapis.com/forecastrss?w=場所コード&u=c" | 
grep -E 'astronomy' | 
perl -pe 's/[\w :<]+sunrise="([0-9:]+?) am"   sunset="([0-9:]+?) pm"\/>/$1 - $2/g'
UV-Index
curl --silent "http://local.msn.com/worldweather.aspx?eid=517&q=場所コード" | 
perl -pe 's/<\/dd>/\n/g' | 
grep -E 'UV index' | 
sed -e 's/<dt>UV index<\/dt><dd>//g'

Calendar

[screen shot]

この部分に関しては正直本当はまぁなくてもいいかなくらいなのですが、バランス取りと、あとはまぁ、あったらあったで便利なので。

カレンダーは、今日の日付を強調するために地味にshellパネルを2枚重ねにするという小細工を使っています。とはいえ2枚重ねてるのは単にその強調の濃度調節のためです。ピンポイントで透明度とか調整できれば良かったんだけどねぇ。あとは日曜始まりが嫌いなので月曜始まりに改変したり。

ちなみにcalコマンドは等幅フォントで表示されることを前提に出力されてるので等幅じゃないと崩れる。MenloとかCourierとかが等幅。

右側はコマンドラインのicalBubbyを併用して、iCalの情報を同じくGeekToolで呼び出し。

カレンダー | 強調なし
cal | 
awk '{ getline; print " Mo Tu We Th Fr Sa Su"; getline; \
if (substr($0,1,2) == " 1")  print "                    1 "; \
do { prevline=$0; if (getline == 0) exit; print " "\
substr(prevline,4,17) " " substr($0,1,2) " "; } while (1) }' | 
sed -E '1,$'"s/ ($(date +%e))( |$)/ $(echo '\033[1m')\1$(echo  '\033[0m')\2/"
カレンダー | 強調あり
cal | 
awk '{ getline; print " Mo Tu We Th Fr Sa Su"; getline; \
if (substr($0,1,2) == " 1")  print "                    1 "; \
do { prevline=$0; if (getline == 0) exit; print " "\
substr(prevline,4,17) " " substr($0,1,2) " "; } while (1) }' | 
sed -E '1,$'"s/ ($(date +%e))( |$)/ $(echo '\033[1;47m')\1$(echo  '\033[0m')\2/"
icalBuddy
[icon]
iTunes機能拡張 / free / site
iCalの情報を色々フィルタリングして出力するコマンドラインソフト。

System

[screen shot]

一番下はシステム周りのモニタリング。ここはまさにGeekToolが大活躍する場。ことこの古いMacBookではハードディスクがカツカツなので空き容量やらswapファイルやらには気を配ってます。またCPUのusageはソフトウェアがハングしていないかの目安になります。

下のCPUのグラフのみはXRGというモニタリングソフトを使い、他の数字部分はグラフ上の文字データも含め全てGeekToolです。そうそう、フォントは基本的に全部Helvetica Neueなのですが、CPUのTOP5だけは列合わせの関係で等幅フォントでInconsolataというのを使っています。

ラップトップマシンだしマウスはワイヤレスのMagic Mouse(わりと頻繁にバッテリが切れる)を使っているのでバッテリ容量もモニタ。ここバッテリ周りのソースは他のマシンで動くのかは自信がないのですが、自環境ではひとまず正常に動いてます。ちなみに、Snow LeopardからLionにしたときに前のソースで動かなくなったので書き直しました。逆に言うとこのソースだとLion以外だと動かない可能性が高いです。

MacOS ver.
sw_vers -productVersion | awk '{print "v"$1}'
wifi (SSID)
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | 
egrep "(\ SSID)" | awk '{print $2" " $3" " $4" " $5" " $6 ;}'
HDD | used
df -Hl | grep 'disk0s2' | awk '{print $3}'
HDD | free
df -Hl | grep 'disk0s2' | awk '{print $4}'
HDD | swap

参照: swapファイル総量の表示 on Geektool

HDD | Trash
du -sh ~/.Trash/ | awk '{print $1}'
MacBookバッテリー残量
ioreg -c AppleSmartBattery | grep Capacity | tr -d ' |"' | tr '=\n' ' ' | awk '{printf("%.0f%%", $2/$4 *100)}'
Magic Mouseバッテリー残量
ioreg -c BNBMouseDevice | grep Percent | awk 'NR==2 {print $NF"%"}'
CPU usage
top -l1 -n0 | awk 'NR==4 {printf("%5.1f%%\n%5.1f%%", $5, $7);}'
CPU | アクティビティ TOP5
top -l2 -stats command,cpu -o cpu -n5 | 
tail -5 | 
awk '{cpu=$NF; $NF=""; printf "%-17s%4.1f%%\n", $0, cpu;}'
XRG
[icon]
ハード・モニタリング / free / site
ハードの様々な情報をグラフ化してモニタリングするソフト。天気や株価までグラフ化できる。デフォルトの配色はとんでもないが、設定さえ適切にすればステキになる

以上こんな感じです。私もこれを作るとき人のを参考にしたので、自分のも晒してみました。

Comment

この記事へのコメント受付は終了しました。