Geektool を使って Mac のデスクトップに様々な情報を表示する

シェアする

たまにデスクトップ晒しスレなどで他人のデスクトップを見ているといろいろな情報を表示している人がいますね。Windows であれば Samurize や Rainmeter 等を利用すると思いますが Mac であれば Geektool 等のアプリケーションを利用する事で似たような事が可能になります。

Sponsored Links

Geektool の使い方

アプリを起動すると以下のようなウインドウが出るので、表示したい情報をデスクトップにドラッグします。

geektool

そうすると表示内容を設定する画面が表示され、好きなように設定する事が可能です。

表示できる情報は大雑把にわけて File Image Shell の3つですが Shell では Unix のコマンドを指定する事で様々な情報を表示する事が可能ですし、任意のスクリプトを動かす事もできます。見た目も色やフォント、文字色、表示位置等を細かく指定する事が可能です。

例えば日時を表示する際は Unix のコマンドである date を使用します。

$ date
Wed Dec  3 21:12:52 PHT 2014

何も引数を付けなければデフォルトの表示ですが、フォーマットを指定する事で好きな形式で日時を表示する事ができます。

$ date "+%Y/%m/%d(%a) %H:%M:%S"
2014/12/03(Wed) 21:12:45

このコマンドを Geektool で指定する事で任意の情報を好きなようにデスクトップ上に表示する事が可能です。

他には以下のようなコマンドが使えます。

カレンダーの表示

カレンダーを表示するには cal コマンドを使用します。

$ cal
   December 2014
Su Mo Tu We Th Fr Sa
    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

-3 で前後3ヶ月表示される・・・という機能があったはずだけど OS X 標準の cal コマンドには無いらしい。

プロセス毎の CPU, メモリ消費量を見る

プロセスを表示する ps コマンドに表示するユーザーや項目の指定を行う。例えば以下のような感じに。

$ ps ax -c -o command,%cpu,%mem -r | head -n 14
COMMAND           %CPU %MEM
Google Chrome He  19.1  3.6
VLC                3.6  0.4
Skype              2.2  1.1
Google Chrome      1.3  2.7
coreaudiod         1.2  0.0
iTerm              0.8  0.5
WindowServer       0.7  0.4
Google Chrome He   0.6  0.8
spring app    |    0.6  0.2
Activity Monitor   0.3  0.3
Google Chrome He   0.2  0.4
sysmond            0.2  0.0
Google Chrome He   0.2  0.9

CPU, メモリ, ディスクの使用量を見る

CPU 等の使用量を見るだけなら以下のようなコマンドで表示する事ができる。

$ top -l 1 | head -n 10
Processes: 225 total, 2 running, 11 stuck, 212 sleeping, 1305 threads
2014/12/03 22:19:39
Load Avg: 1.56, 1.83, 2.02
CPU usage: 19.58% user, 25.77% sys, 54.63% idle
SharedLibs: 7408K resident, 8312K data, 0B linkedit.
MemRegions: 96149 total, 2062M resident, 15M private, 169M shared.
PhysMem: 4073M used (1014M wired), 21M unused.
VM: 570G vsize, 1064M framework vsize, 10616980(0) swapins, 11306759(0) swapouts.
Networks: packets: 29417041/16G in, 26369714/9613M out.
Disks: 10389643/188G read, 5761315/123G written.

ただこれでは見た目があまりよろしくないので整形したい。が、それよりは他の方が公開している Geeklets というスクリプトを利用したほうが良いだろう。

例えば CPU、メモリ、ディスクの使用量を見るのであれば以下の Geeklets を利用するとグラフ付きでかっこ良く表示できる。

上記よりファイルをダウンロードし、Geektool で shell を選びファイルのパスを指定するだけで利用できる。手軽にかっこ良く表示できて便利だ。とてもありがたい。

$ sh /Users/ryomatsu/Downloads/test/test.sh
CPU Usage      ▇▇▇▇▇▇▇▇▇        23%
Memory Usage   ▇▇▇▇▇▇▇▇▇        98%
/dev/disk1   ▇▇▇▇▇▇▇▇▇  52%
/dev/disk4s1   ▇▇▇▇▇▇▇▇▇        60%
/dev/disk3s2   ▇▇▇▇▇▇▇▇▇        90%

天気を表示する

天気を表示するにはインターネットより天気予報を取得しなければならない。もちろん表示する事ができる。

$ curl --silent "http://xml.weather.yahoo.com/forecastrss?p=RPXX0007&u=c" | grep -E '(Forecast:<b><br />|High)' | sed -e 's/Forecast://' -e 's/<br \/>//' -e 's/<b>//' -e 's/<\/b>//' -e 's/<BR \/>//' -e 's/<description>//' -e 's/<\/description>//'
Wed - Mostly Cloudy. High: 30 Low: 25
Thu - Partly Cloudy. High: 30 Low: 26
Fri - PM Thunderstorms. High: 29 Low: 25
Sat - Showers/Wind. High: 28 Low: 25
Sun - Rain/Wind. High: 28 Low: 25

p= のところに天気を表示したい場所の Location ID を入れる。URL を見ての通り Weather Yahoo RSS Feed を利用しており、Yahoo Weather を見れば ID はわかる・・・と思いきや URL の記述が変更になったのかうまくいかず適当にぐぐった。ちなみに RPXX0007 は今僕のいるセブ島の ID です。

現在の天気であれば以下のような感じ。

$ curl --silent "http://xml.weather.yahoo.com/forecastrss?p=RPXX0007&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>//'

Cloudy, 26 C

参考

shell コマンドには以下の Web ページを参考にしました。



Macのデスクトップカスタマイズの定番!『GeekTool』を使ってMacをギークっぽくカスタマイズ! | 男子ハック

Sponsored Link

シェアする

フォローする