GeekTool

GeekToolはマックのデスクトップ上にさまざまな情報を埋め込めるツールです。

ツールと言っても、UIでカスタマイズするのではなく、テキストでカスタマイズになるので、ちょっと敷居が高い...


GeekTool


「Download」が見づらいのですが、落としてきます

Download


geektool

起動すると左側にデスクトップに追加する機能、右上に追加された機能が表示されます。

いろいろな機能がありますが、File(テキスト表示)、Image(画像表示)、Shellの他にもプラグインがあるっぽいです。

まずはシェルでCPUの状況を出してみます。

CPUのモニタリングについてはいろいろな表現がありますが、今回は下記のサイトのシェルスクリプトをお借りしてます。

GeekTool@自己満足のためのデスクトップデコレーション(Qiita)



#!/bin/sh myData=`top -l 1` typeset -i cnt=0 echo "CPU \c" myCPU=`echo "$myData" |awk -F '[ % ]' '/CPU usage/ {print $3+$6}' |bc` myCPU=`echo "tmp=$myCPU; tmp /= 1; tmp" |bc` while [ $cnt -lt $myCPU ] do echo "\033[1;32m|\033[0m\c" cnt=`expr $cnt + 5` done while [ $cnt -lt 99 ] do echo "|\c" cnt=`expr $cnt + 5` done printf %6d $myCPU && echo "%\c" echo "\r" unset myCPU cnt=0 echo "Memory \c" # カーネル, OS系使用量 myWiredMem=`echo "$myData" |grep "PhysMem" |sed -e "s/(//g" |awk '{print $4}' |sed s/M// |sed s/\(//` myUsedMem=`echo "$myData" |awk '/PhysMem/ {print $2}' |egrep "[0-9]M" |sed s/M//` myFreeMem=`echo "$myData" |awk '/PhysMem/ {print $6}' |egrep "[0-9]M" |sed s/M//` myTotalMem=`sysctl hw.memsize |awk '{print $2}'` myTotalMem=`echo "tmp=$myTotalMem; tmp /= 1048576; tmp" |bc` # Macが10Gと省略し始めるので頑張ってみた if [ ! -n "$myUsedMem" -a -n "$myFreeMem" ]; then myUsedMem=`echo |awk '{print t - f - a}' t=$myTotalMem f=$myFreeMem a=$myWiredMem` fi if [ ! -n "$myFreeMem" -a -n "$myUsedMem" ]; then myFreeMem=`echo |awk '{print t - u - a}' t=$myTotalMem u=$myUsedMem a=$myWiredMem` fi myUsedPer=`echo "tmp=($myUsedMem * 100 / $myTotalMem); tmp" |bc` myWiredUsedPer=`echo "tmp=($myWiredMem * 100 / $myTotalMem); tmp" |bc` myTotalUsedPer=`echo |awk '{print a + u}' a=$myWiredUsedPer u=$myUsedPer` while [ $cnt -lt $myTotalUsedPer ] do if [ $cnt -lt $myUsedPer ]; then echo "\033[1;32m|\033[0m\c" else echo "\033[0;36m|\033[0m\c" fi cnt=`expr $cnt + 5` done while [ $cnt -lt 99 ] do echo "|\c" cnt=`expr $cnt + 5` done printf %6d $myTotalUsedPer && echo "%\c" echo "\r" unset myData unset myWiredMem unset myUsedMem unset myFreeMem unset myTotalMem unset myUsedPer unset myWiredUsedPer unset myTotalUsedPer cnt=0 echo "Disk \c" myDisk=`df |awk '/dev\/disk1/ && NF>1 {print $5}' |sed 's/\%//'` while [ $cnt -lt $myDisk ] do echo "\033[1;32m|\033[0m\c" cnt=`expr $cnt + 5` done while [ $cnt -lt 99 ] do echo "|\c" cnt=`expr $cnt + 5` done printf %6d $myDisk && echo "%\c" echo "\r" unset myDisk unset cnt


GeekToolで機能を追加するにはグループを作るか、グループに追加します。
今回はdefaultGroupに追加してます。

GeekletsからShellをデスクトップへドロップします。
四角い枠(白)が表示領域となります。
geeklets

シェルで何かを移したいときにはCommandを設定しますが、
枠に直接書いてもいいし、右にある「...」をクリックすればエディタが立ち上がります。

エディタに上記のスクリプトを記載して「Refresh every」に更新時間を掛けば実行されます。

表示については色はプロパティから、サイズは直接表示枠から変えられます。