えっと、訊かれたので書きます。大元のコンテンツはこちら。週間天気は取れません。Weatherで地名を入れて、出てくるページのURLの数字の箇所です。1日Macこれの天気アイコン3つ部分えっと、訊かれたのでGeekToolでオリジナルの画像を使って天気予報を表示するスクリプトをGitHubに置いてみました。私が以前晒した自分のデスクトップで使ってるヤツです。APIから天気コードを読み込んで、それを元にこっちで用意した天気アイコン画像を選んで表示する、という手はずを踏んでいます。ここはPerlでスクリプト書いてGeekToolで蹴ってます。アイコンはフォントのお天気記号をベースにIllustratorで作ってpngで書き出し。いった流れを大まかに踏んでます。自分さえ使えれば良いという考えのもと作ったので、設定方法が煩雑なのですが、それでも良いという方はお試しください。検索してみたら意外と見当たらないもんで、こんなのでも役に立つかもしれない。そのような性質上、「なんもわかんないけど難しくてできません!!」みたいな質問には冷たいかもしれません。バグとか常識的な範囲の質問には答えますが。使用しているサービスの仕様上、取得できる天気は当日と翌日のみとなります。気温の表示についてはGeekToolで天気予報の最低/最高気温表示参照して下さい。27日Macお気づきの方もいるかと思いますが、デスクトップいじりがそれなりに好きです。以前から一度この辺りのことをBlogに書こう書こうと思いながらも現在に至るまで書かずじまいでいたのですが、今回OSもLionになったことだし、そろそろ書いてみます。現在のデスクトップはこんな感じです。zoomといっても、私は自宅では2画面使いなので、これはその2画面の内のサブディスプレイの方です。メインディスプレイは特に何も出してないので面白くないかなと思いサブディスプレイのみにしぼって書きます。ご覧の通り基本はデスクトップカスタマイズでおなじみのGeektool。いうわけで本稿もGeekToolでのカスタマイズについてが中心となります。11日Mac最近我が愛機MacBookが重たい。Proが出たら買い替えたい)。私は外付けHDだクラウドだに自分のデータを分散させることを好まないので、何でもかんでもこの1機にデータを入れている。一応内臓HDDは250GBなのだがもう瀕死だ。私は基本一度Macを立ち上げたら、OSのアップデートか飛行機乗るかカーネルパニックを起こすかでもしないかぎり立ち上げっぱなしにしてる。すると何が起こるかというと、Macがswapファイルを作りまくってくれるのだ。前述のようにもうそれなりに古いのもあるが、気付いたらswapファイル10個越え、計10GB以上とかになってる。実際そういうレベルになるとMacももたつき、作業に支障が出る。最近はあんまりひどいとクリアするために再起動させてる。ところで私は最近Geektoolの愛用者でデスクトップに色々表示させて便利に使っているのだが、ここに現在のswapファイルの総量もあったら便利だなーと思いつく(Geektoolを使ったデスクトップのカスタマイズそのものについてもそのうち書きたいと思ってる。最近のDesktop画像はプロフィールで公開中)。最初は単純にswapファイルのあるディレクトリの容量を表示させればいいだけだと思ったのだが、どうやらswapファイルのある/var/vm/ディレクトリにはswapファイルの他にsleepimageたるなんか大きいファイルが鎮座している。なんだこりゃと思ってぐぐると、どうやらスリープ時のバックアップ用のデータらしい。設定で生成をオフにもできるっぽいけどそんな大事な機能はオフにはしたくない。私スリープ状態でガンガン持ち歩くし。表示させたい値としては、/var/vm/全体の容量からsleepimageの容量を引いた差分となる。なんか思ったよりめんどくさそうだけどまぁやればできそう。ことで、Geektoolでswapファイルの総量を表示させるスクリプトを書いたのでここに載せておく。そんな環境依存がある特殊なことはしてないはずなので同じMacなら動くはずである。書くと、duコマンドで/var/vm/ディレクトリとsleepimageファイルの容量を表示させ、それをパイプでawkに渡して差分を計算、かつ人間が読める出力フォーマットにして表示させている。sleepimageを引きたい関係上どうしてもawkで計算をする必要が出てくるので、泣く泣くduではキロバイト単位で表示させて、awkで単位計算をやっている。スマートな方法があればいいのだがあんまり見当たらなかった。後半の単位計算の部分のコードはとあるLinux系フォーラムにあったコードが参考になった。いうか一部改変して使ってるけどほぼパク。ことでコレをコピペしてGeektoolに突っ込めば多分動くので同じことしたい人がいたらどうぞ。私は大まかな値さえ把握できればいいので整数値を使っているが、小数点まで出したいなら最後のprintfのとこを弄れば良い。