Gadget Lunatic

play-around-with-geektool-cover

Geektoolで遊ぶ。[写真・アナログ時計・スピーカーの音量]

Mac / Posted on December 22, 2012

MENU

久々にGeektoolを使ってたら、いろいろと凝ってようやく納得のデスクトップができました 。基本的はGeektoolの使い方はまた今度にして、今回はとりあえず写真、アナログ時計、スピーカーの音量を表示させる方法を忘れないうちに紹介します。

スピーカーの音量を表示

まず、一番右側にある音量の表示について。ここにあるcircle volume indicatorを使いました。もともとのデザインがあまりデスクトップに合わなかったので自作。

circle volume indicatorのページからダウンロードしたzipファイルには、Apple Scriptのファイルと説明が入っていたので、音量1から16に合わせて1.pngから16.pngというファイルを参照しているのが分かりました。これに合わせて画像ファイルを自作。17個(ミュートの状態もあるので、17個)も作るのは結構面倒。

まず僕の作った画像ファイルはここ(geektool 音量を表示)からダウンロードできます。これを展開して、Circle_VolumeIndicatorの中にいれておいてください。

次に、VolumeIndicator.scpt の中で、do shell scriptから始まる行の/Images/とか/Images_White/という部分を/me/に書き換えてください。(詳しくはcircle volume indicatorに入っていたINSTRUCTIONS.rtfの手順NO.3を参照…)

また、4行目の”PATH”の部分も、VolumeIndicator.scptまでのパスに変更してください。(たとえば、”~/Downloads/Circle_VolumeIndicator/”とか。)

あとは、イメージgeekletを配置して、circle volume indicator内のtemp.pngをパスに指定するの事と、新しいシェルgeeklet のコマンドに
osascript [ここまでのパス]/VolumeIndicator.scpt
と書けばうまく表示されると思います。(更新時間を設定することを忘れないように…)※これも分からなかったらINSTRUCTIONS.rtfを見る!

この投稿の一番上の画像では、スピーカーの音量表示の背景が半透明の黒になっているが、それは後から付け足しましたので、別の画像ファイルになっています。geektool 音量を表示の中にgrey.pngというファイルを追加しておいたので、Geektoolのイメージgeekletで適当に重ねておいてください。

もし、僕みたいに音量表示の真ん中にこんなアイコンを表示させたければ、このアイコンは
/System/Library/PreferencePanes/Sound.prefPane/Contents/Resources/SoundPref.icns
です。これをimage geekletで表示させました。

アナログ時計

さてアナログ時計。一番苦労しました。アナログ時計はこれを使う予定でしたが、参照しているファイルがめちゃくちゃ多く、カスタマイズが難しそうだったのでやめました。代わりに、さっきのTimepieceを参考に、使う画像ファイルが少なくなるよう自分でApple scriptでスクリプトファイルを作って表示させています。

仕組みとしては、文字盤をimage geekletで表示させたあと、用意した短針と長針を時間にあわせて回転させて、それらをimage geekletで重ねて表示させています。この方法だと、用意するファイルが短針と長針と文字盤の3つの画像だけで済むので、カスタマイズが楽だと思います。

とりあえずここからzipファイルをダウンロードしてください。なかにscriptファイルと僕の作った短針、長針、文字盤が入っています。まず、sriptファイルを開いてPATHという部分をここまでのパスに書き換えてください。(例: “~/Documents/time”)実際にGeektoolで時計を表示させるには4つ(もしくは5つ)のGeekletが必要になります。

まずはapplescriptを実行させるためのshell geekletが必要になります。geekletのコマンドの部分に、osascript [設置した場所までのパス]/gettime.scptと書けばapplescriptが実行されます。時計なので、適度な更新時間を設定することを忘れずに。

つぎには文字盤。これはダウンロードしたzipファイル内のclock.pngをimage geekletを表示させるだけです。サイズが300*300になっているので音量の表示とサイズを合わせたければ、geekletのほうでサイズを100*100pxに指定してください。

そして長針。ダウンロードしたzipファイルを展開したフォルダ内にある、hour.pngというファイルが長針のベースになります。Applescriptが先ほどのシェルgeekletによって実行されると、同じ場所にhourdeg.pngというファイルとhourtemp.pngというファイルが作られます。このうちhourtemp.pngというほうのファイルをimage geekletで表示させてください。更新時間は適当に設定してください。

最後に短針。同じように、min.pngというファイルがベースになります。同じフォルダ内にできるmintemp.pngをimage geekletで表示させてください。hourtemp.png, mintemp.png, clock.pngをうまく重ねると時計のようになります。

僕は日付を時計の中に表示させていますが、これは各自で調べてください。shell geekletでdateコマンドを使っているだけなので…

この時計をカスタマイズさせるのはとても簡単です。用意するものは300*300pxの文字盤・clock.png、300*300pxの12の位置に長針がきた状態のhour.pngというファイルと300*300pxの12の位置に短針がきた状態のmin.pngというファイルです。長針と短針のファイルは300*300pxで12の方向を向いていないと正しく機能しないので注意してください。

画像を表示させる

最後に画像です。これは別になくてもいいですが、三つあったほうがいいと思ったので表示させました。円形になるよう編集した画像を複数用意してひとつのフォルダに入れたあと、image geekletで画像を入れたフォルダを指定してpick random image in directoryにチェックを入れるとランダムに画像がスライドショーのように表示されます。これに音量を表示させる時に使った、17.pngを重ねています。

コツ…

すべてに共通することですが、geekletの位置は数値で指定するとうまく重ねることができると思います。さらに、音量の表示や時計、写真のグループをそれぞれ分けると管理しやすいと思います。

こうして作ったgeektoolを使ったデスクトップはこんな感じです。わからない部分があればコメント欄でお願いします。

Mac App Storeで見る。
GeekTool – Tynsoe.org

追記:

久々にscriptを見てみたらうまく動作しなかったのでgettime.scptの

if hour < 12 then
set x to hour / 12 * 360 + min / 60 * 30
else if hour > 12 then
set x to (hour – 12) / 12 * 360 + min / 60 * 30
end if

を、

set x to hour / 12 * 360 + min / 60 * 30

に直してください。

フィードバック

  1. 田原 謙一

    OSがMarvericksのせいかもしれませんが、VolumeIndicator_alt.scptのImage_Whiteをmeに換えコンパイルあるいは実行をすると、end runtell application “Geek Tool Helper”のapplicationが選択され、
    「end of lineなどがあるべきところですがclass nameが見つかりました。」という構文エラーが表示されます。
    試行錯誤していますがなかなかコンパイルされないので、解決方法があれば教えて頂けないでしょうか。

    • 管理人

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

      4行目がそのままになっていることが原因だと思います。4行目の、
      set pathName to “PATH”
      のPATHの部分をスクリプトの置いてある部分までのパス(つまり、”~/Downloads/Circle_VolumeIndicator/”とか)に変更するとうまく動作すると思います。
      記事のなかにこのことが書いてありませんでした。すいません。

  2. 山崎基弘

    アナログ時計の「zipファイルをダウンロード」からダウンロードしたsprictファイルに表示がされません。OS X バージョン10.9.3のiMacを使用しています。当方、GeekToolに関して全くの無知で、scriptファイルの表示方法、または制作方法を教えていただけますでしょうか?

    • 管理人

      状況をいまいちつかめてないので、わかりませんが、推測すると…
      scriptファイルの中身が表示されないのは、Apple Scriptエディタを開いた状態だと結果のタブのみが表示されているからではないでしょうか。イベント・返された値・結果のタブの上にある編集領域のサイズを変更するバーでサイズを調整すると、ファイルの中身を編集することができます。もしよろしければ、スクリーンショットをDropbox等にのせて、URLで共有していただけると、より状況がわかるのでありがたいです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>