2009年4月3日

Safari のウインドウをセンタリングする AppleScript

24インチというiMacの大きさには、思ってたよりもすぐに慣れたのですが、WUXGA(1920×1200ピクセル)という広さは、いささか持て余し気味です。

今までは、基本的にウインドウの左上をモニターの左上に揃えて使っていたのですが、24インチWUXGAのモニターで同じようにすると、ウインドウがかなり左寄りになってしまいます。これでは、視線を向けるのがちょっとしんどいので、最もよく使用するソフトである「Safari」では、ウインドウを中央に持ってくるようにしました。

しかし、ウインドウを左端に揃えるには、ウインドウの「拡大/縮小(+)」ボタンで簡単に操作できるのですが、センタリングの機能はありません。

Safariを使っていて、新しいウインドウを何度か開いていると、ウインドウの位置がズレてしまう事があります。どうも、このズレが気持ち悪いので、AppleScriptでSafariのウインドウをセンタリングするようにしました。

ウインドウの位置やサイズを変更するのなら、ブックマークレット(JavaScript)でも可能なのですが、それだと次回ウインドウを開いた時に、位置がズレてしまう事があるので、AppleScriptを使っています。

で、簡単ですが、書いたスクリプトは次のとおりです。

tell application "Finder" to set |デスクトップの範囲| to bounds of window of desktop
tell application "Safari" to set |ウインドウの範囲| to bounds of front window

set |デスクトップの幅| to integer 1 of |幅と高さを求める|(|デスクトップの範囲|)
set |ウインドウの幅| to integer 1 of |幅と高さを求める|(|ウインドウの範囲|)
set |ウインドウマージン| to (|デスクトップの幅| - |ウインドウの幅|) div 2

tell application "Safari" to set bounds of front window to {|ウインドウマージン|, integer 2 of |ウインドウの範囲|, |ウインドウマージン| + |ウインドウの幅|, integer 4 of |ウインドウの範囲|}

on |幅と高さを求める|(|範囲|)
    return {(integer 3 of |範囲|) - (integer 1 of |範囲|), (integer 4 of |範囲|) - (integer 2 of |範囲|)}
end |幅と高さを求める|

このスクリプトを利用するには、「AppleScript ユーティリティ」を起動し、「メニューバーにスクリプトメニューを表示」にチェックを入れます。

そして、前記のスクリプトをスクリプトエディタで開き、「~/Library/Scripts/Applications/Safari」に適当なファイル名で保存します。

これで、メニューバー右側に「S」の字型のスクリプトメニューアイコンが現れ、Safariのウインドウを開いた状態でそのアイコンをクリックすると、先ほど保存したスクリプトが表示されます。そして、そのスクリプトを選択すると、最前面のウインドウがセンタリングされます。

ちなみに、5行目の「set |ウインドウの幅| to integer 1 of |幅と高さを求める|(|ウインドウの範囲|)」という部分を、例えば「set |ウインドウの幅| to 1024」のように変更すれば、ウインドウ幅を好きなサイズに固定できます。

0 件のコメント: