最終更新日:2011/10/31
ウインドウリサイズサポートアプリケーションです。
基本的にはWindowResizeSiyouのアプリケーション版です。
グリッド、またはプリセットで指定したサイズにリサイズできます。
Mac OS X 10.6.8
10.5でも動くかもしれませんがテストはしていません。
10.7でも動いているような気がします。
マルチディスプレイ環境でディスプレイを指定してリサイズする場合は、ウインドウ上部の「A」「N」「P」「1」「2」ボタンでディスプレイを指定できます。
「A」は「Auto」の「A」で現在マウスがあるディスプレイでリサイズします。初期値です。
「N」は「Next」の「N」で現在マウスがあるディスプレイの次のディスプレイでリサイズします。ディスプレイが二つの場合はこれを選択するとマウスが無い方のディスプレイを指定できます。
「P」は「Prev」の「P」で現在マウスがあるディスプレイの前のディスプレイでリサイズします。ディスプレイが3つ以上ある場合に表示されます。
数字はディスプレイの番号で指定した番号のディスプレイでリサイズします。
ディスプレイが一つの場合は表示されません。
グリッドでリサイズした物だけ履歴に追加されます。
リサイズ後のサイズを表示するボタンで表示され、ディスプレイを指定した場合はその指定がそのボタンの隣に表示されます。
ウインドウ右側の2色以上付いたボタンを押すと複数ウインドウをリサイズします。リサイズするウインドウはズームボタンを押したウインドウから下のウインドウで画面で見えている順です。二つのウインドウをリサイズする場合でSafariのウインドウの下にFinderのウインドウがあり、さらにその下にまたSafariのウインドウがある場合、Safariの手前のウインドウとFinderのウインドウを並べます。
画面には通常のウインドウ以外のウインドウも配置されている場合があり、2枚目以降のウインドウがうまくリサイズされない場合もあります。
下記のようになります。
Finder 縦3列 6,6,0,0,1,5&6,6,2,0,3,5&6,6,4,0,5,5 VLC,mplayer 動画大 6,6,0,0,2,5,2 VLC,mplayer 動画小 6,6,0,3,2,5,2 Finder _アイコンになる 6,6,0,3,2,5,2 #から始めるとその行がコメント扱い
ウインドウが重なっていたり、複数のディスプレイがリサイズ対象だったり、リサイズサイズのグリッドの幅が違っていた場合などアイコンで表示できない物はテキストのままです。
ズームボタン、最小化ボタン、クローズボタンを右クリック、ミドルクリック、ボタンが多い物はそれによるクリックであらかじめ設定したサイズでリサイズできます。
設定はテキストで書きます。デフォルトでいくつか入っているのでそれを参考にして下さい。
注意点はアプリケーション名、マウスボタン、押したボタン、サイズの区切りはタブということです。半角スペースなどではありません。
マウスボタン:right, middle, 1,2,3...
押したボタン:zoom, minimize, close
例:
* right zoom 2,2,0,0,0,1 コメントは無くてもいいです Finder middle zoom 2,2,0,0,0,1&2,2,1,0,1,1 コメント mplayer,iTunes,VLC middle zoom 6,6,0,3,2,5,2 #から始めるとその行がコメント扱い #,で区切って複数のアプリケーション名を指定できます
設定の入力エリアではタブは白色で表示され、その他の文字(半角スペースを含む)は色付きで表示されます。
このクリックはでリサイズした時にこのクリックイベントを削除しません。
スペースはディスプレイ毎に設定するようになっていて , で区切って指定します。一つだけ書いてあるとその設定は二つ目のディスプレイでは有効になりません。
例1:ディスプレイ1は30、ディスプレイ2はスペースを空けない
30
例2:ディスプレイ1は30、ディスプレイ2は50、スペースを空ける
30,50
例2:ディスプレイ1は30、ディスプレイ2は50、ディスプレイ3は100、スペースを空ける
30,50,100
WindowResizeSuruyoと相性が悪いソフトがあるようなので、その為の設定がいくつかあります。
また、安全性を重視して、最初からいくつかオンになっています。
BetterTouchTool、Jitouchなどが該当するようです。ただ、自分がver1.3で少し併用した限りでは特に問題はありませんでした。
デフォルトでオンになっています。
WindowResizeSuruyoはシステムのイベントをチェック、処理していますが、WindowResizeSuruyoが最初に処理をした方が影響が無いのかな、と思ったのでこの設定があります。このチェックを入れて相性の悪いアプリケーションより後にWindowResizeSuruyoを起動させる必要があります。
なお、このチェックをオフの状態では最後に処理が行われるように登録します。
効果があるか分かりませんが起動順番でコンフリクトを回避なんて旧Mac OS時代を思い出しますね。
デフォルトでオンになっています。
このチェックボックスをオンにすると、ズームボタンを左クリックでイベントを削除することはしなくなります、また、サイズ選択ウインドウも表示されません。またイベントの受け取り方法もイベントを削除できないパッシブ型にします。
これにより他のソフトに影響を与えることは少なくなるか、無くなると思います。
また、この設定をオンにするとクリックしたところのGUIパーツを調べる処理のタイムアウトがデフォルト値になります。これにより、GUIパーツを認識できなくて動作しないケースが減ると思われます。
ズームボタンをクリックでサイズ選択ウインドウが表示されなくなるので、通常「ウインドウのタイトルバーを左ボタンダブルクリックでサイズ選択ウインドウを表示」を使います。
これをオンにすると上記マウスクリックイベントの監視はやめます。ズームボタンのクリック、右クリックでリサイズウインドウの表示はできなくなります。AppleScriptでリサイズウインドウを表示させリサイズします。
これをオンにするとBetterTouchToolでコンフリクトになるかもしれないとの表示が無くなります。
"6,6,0,0,2,2"は
・横の分割数 ・縦の分割数 ・横の座標1(0から) ・縦の座標1(0から) ・横の座標2 ・縦の座標2
を,で区切った物になります。左上の座標が0,0になります。
マルチディスプレイでディスプレイを指定する場合は最後にディスプレイの番号を追加します。番号は1からの数字になります。nextで現在マウスがある次のディスプレイを指定できます。指定しなかった場合は現在マウスがあるディスプレイが対象になります。またprevで前のディスプレイを指定できます。
例:6,6,0,0,2,2,2
例:6,6,0,0,2,2,next
設定ウインドウの「テスト&サイズ取得」で選択したサイズのテキストを取得できます。
複数指定する場合は&で繋げます。
例:6,6,0,0,1,5&6,6,2,0,5,5
下記のようなAppleScriptでアクティブなアプリケーションのアクティブなウインドウをリサイズできます。
tell application "WindowResizeSuruyo"
ResizeWindow "6,6,0,0,2,5"
end tell
tell application "WindowResizeSuruyo"
ResizeWindow "6,6,0,0,2,5&6,6,3,0,5,5"
end tell
下記のAppleScriptでサイズ選択ウインドウを表示してアクティブなアプリケーションのアクティブなウインドウをリサイズできます。
tell application "WindowResizeSuruyo"
ShowSelectSizeWindow
end tell
下記のAppleScriptでサイズ選択ウインドウを表示してマウスの下にあるウインドウをリサイズできます。マウス(トラックパッド)ジェスチャーでAppleScriptを呼び出すならShowSelectSizeWindowよりこっちのほうがいいかもしれません。
tell application "WindowResizeSuruyo"
ShowSelectSizeWindowForWindowAtMouse
end tell
オンにするとタイトルバー部分をダブルクリックでサイズ選択ウインドウが表示されます。タイトルバーが無いウインドウでもウインドウ上部をクリックすると表示されます。アイコンが表示される部分は対象エリア外となります。
なお、タイトルバー部分とはウインドウ上部20ピクセル部分でGUIパーツがウインドウ、ツールバーのボタンが無い部分、StaticTextのいずれかである部分です。通常これらの部分はクリックに反応しないので通常の使用に影響は無いと思われます。
オンの場合、下記フォルダにWindowResizeSuruyo.scptがあるとウインドウのタイトルバー部分をダブルクリックした時にAppleScriptを実行します。
~/Library/Scripts/Applications/WindowResizeSuruyo/WindowResizeSuruyo.scpt
なお、タイトルバー部分とはウインドウ上部20ピクセル部分でGUIパーツがウインドウ、ツールバーのボタンが無い部分、StaticTextのいずれかである部分です。通常これらの部分はクリックに反応しないので影響は無いと思われます。
タイトルバーのダブルクリックで何かしたいことをAppleScriptで実行することができます。
最初に必ずバグ、使用上の注意を読んで下さい。
ときどき、最新バージョンについて書いている途中にこのページをアップロードしてしまい、最新バージョンのファイルが無い場合があります。その場合、一つ古いのをダウンロードして下さい。
タイトルバーダブルクリックで特に問題無いと思っていたら、Apple純正のGarageBandがシステムの設定を無視してDockにしまってくれる仕様でした。MPlayerXもそうなので他にもあるかもしれませんね。
ウインドウメニューも選択できないウインドウが表示されなくなってちょっと実用的になったかもしれません。
タイトルバーダブルクリックに完全に慣れて、特に問題無く使えている気がします。ダブルクリックはクリックより手間だけど、範囲が広いので便利だと思います。
タイトルバーダブルクリックだといろいろと細かい問題が出てきていますが、そろそろ大丈夫になったでしょうか?。
自分の頭もだいぶタイトルバーダブルクリックに慣れてきて、ズームボタンより押しやすいので、こっちの方向で良かったかなと思っていますが、ズームボタン等は押せない状態でもズームボタンなので押せなくてもWindowResizeSuruyoの動作はできると最近知りました。
サイズ選択ウインドウの表示方法をタイトルバーでダブルクリックにしたのは、たまに、ズームボタンが無いウインドウを移動やリサイズしたい場合があり(QuickLookのウインドウや、アプリの設定ウインドウなど)、それに対する解決方法としてこの方法だとどうかな、ということでやってみました。タイトルバーのダブルクリックでDockにしまっている人は機能が被りますので、今まで通りかしまうのをを諦めていただくことになります。
ズームボタンのクリックでサイズ選択ウインドウを表示するのは通常のウインドウリサイズと同じなので違和感無く操作できていましたが、ダブルクリックは今までとは全く別動作になるので、慣れが必要になりそうです。ただ、慣れたらズームボタンより操作可能エリアが広いので便利になるかもしれません。
全画面に表示したら裏のウインドウが選択しにくくなります。システム環境設定のキーボードショートカットですべてのウインドウを順番に切り替えることはできますが、最前面二つのウインドウをトグルできないようなので、それができる仕組みを作ってみました。ちょっと無理矢理だったかもしれません。タイトルバーのダブルクリックに設定してみましたが結構いいかもしれません。
Moomのデモ版は回数で制限されていますが、自分はWindowResizeSuruyoをどれぐらい使ってるのかな、と思ったのでカウンターを付けてみました。
ボタンをアイコンにしてみたら文字より分かりやすかったのでもっと早くからやっておけばと思いました。
Shortcut Recorderのサンプルを見たら簡単にホットキーがつけられそうだったのでつけてみました。サンプルを参考にしたら凄い簡単でした。ホットキー付きAppleScriptランチャーで設定するより簡単で便利かな。プログラムを簡単にする為に設定できるホットキー数は固定ですが、20個あればだいたい足りるんじゃないかと思います。
相変わらずグリッドはあまり使っていませんが、たまに変則的なサイズにしたい時にグリッドがあれば希望のサイズにできるのであった方がいいですね。
今回の修正点とも関係ありますが、ズームボタンの右クリック、ミドルクリック時にもWindowResizeSuruyoでリサイズする時はイベントを削除した方が動作の安定としてはいいような気がしました。iTunesのプレイヤーウインドウで右クリックでコンテキストメニューが表示されるのですよね。
自分はドックを右に表示して「自動的に隠す」ようにしていて、二つ目のディスプレイはメインディスプレイの下側に配置しています。この環境では常に検証していることになりますが、その他環境(ドックの各種設定や二つ目のディスプレイの位置)では今回教えていただいたようにちゃんと動かない場合があるかもしれません。
履歴は前から気になってたのでやってみたけど、使うことがあるかはわかりません。
あと、ディスプレイ指定ボタンの色が気になるところです。
最近はマウスの右クリック、ミドルクリックでのプリセットでのリサイズでだいたい事足りているのでリサイズウインドウを表示することがあまりありません。各アプリケーションに二つのプリセットが指定できればだいたい事足りました。特にグリッドはプリセット用のサイズ取得時にしか使ったことがないぐらい使ってません。こんな使い方でも、さくっと希望のサイズに手軽にリサイズできるので便利だと思います。
App Storeのウインドウリサイズソフトのコメントにはキーボードショートカットに関するコメントがたくさん付いていますが、自分はマウス派でマウスのみでやりたいのでWindowResizeSuruyoにキーボードショートカットの機能はありません。ただ、AppleScriptからリサイズさせることはできるのでキーボードショートカットからAppleScriptを実行できるソフトを使えばとりあえずキーボードショートカットからリサイズさせることはできます。ただ、AppleScriptを使うならウインドウリサイズ用AppleScriptはネットでいくつも公開されているのでそれを使えばWindowResizeSuruyoは必要ないかもしれません。ただ、複数のアプリケーションの複数ウインドウを一度に並べるAppleScriptは知らないので、それがなければWindowResizeSuruyoを使う意味はあるかもしれません。
あと、BetterTouchToolとの併用を少し試していたときに、BetterTouchToolをソフト内からアップデートしたらWindowResizeSuruyoのリサイズウインドウが表示されなくなることがありました。詳しくは調べなかったのですが、条件によっては何か問題が起こることがあるようです。
他のアプリケーションの指定したウインドウだけ最前面に持ってくる方法がわからなかったのですが、ネットで検索してこれはあんまり関係ないかなと、スルーしていた情報がそれで、遂にできるようになりました。今まではクリックしてウインドウを手前に持ってきていたのがあんまりよろしくなかったかもしれないので、これでより安全に動くようになったかもしれません。
AXUIElementPerformActionでAXRaiseしてアプリケーション内で手前に持ってきた後に
AXUIElementGetPid、GetProcessForPIDでPSNを取得して
SetFrontProcessWithOptionsでkSetFrontProcessFrontWindowOnlyを指定するといけるようです。
今回で気になっていた部分の修正は全部終わったのであとはじっくり使っていきたいです。自分はリサイズで指定したいサイズがそんなになかったのでプリセットでリサイズすることがほとんどです。グリッドは滅多に使いません。
App StoreでFlexiglassというのを見かけて、試してみたら、ズームボタンを右クリックでリサイズしました。この方法はシンプルで素早く良く使うリサイズに使えると思ったのでズームボタンの右クリック、ミドルクリックなどで好きなサイズにリサイズできるようにしてみました。アプリケーション毎に設定もできるようにしましたが、GUIを作る気力が無かったのでテキストで設定を記述します。でも、そんなに難しくないと思います。無理にテキスト形式の利点を言えば、メール、ブログ等で簡単に設定を教えてあげられるとか…。
ズームボタンのクリックだけだと2通りしかリサイズできないので、もっとできるようになればいいかと思って最小化ボタンとクローズボタンでも右クリックとミドルクリックでリサイズできるようにしてみたけど、覚えきれないので使うのは止めようと思いました。
BetterTouchToolと相性が悪い場合があると教えて頂いたので、WindowResizeSuruyoのイベント監視方法を他のアプリケーションに影響を与えにくい方法にできる設定を追加してみました。これで相性が改善しない場合も考えて、マウスクリックの監視をオフにする設定もつけてみました。修正前に自分がちょっとBetterTouchTool試したところ、確かにしばらくするとクリックの動作が変になりました。たぶん設定によるのだと思いますが教えていただいた方によるとシステムのフリーズをする場合もあるようです。
最近マルチディスプレイ環境になったので試してみたらいろいろと修正が必要なところがありました。それらを修正してたぶんマルチモニタ環境でも問題なく使えるようになったと思います。
リサイズはだいたい決まったサイズにするのでプリセットから行うことが多いですが、最初多いかと思ったユーザー定義プリセットが9個まで設定できてよかったと思いました。
デザインをさらに調整したけど、設定をデフォルトから変えるとあまり意味が無いかもしれない。
b4から1週間弱使ってるけど特に問題は無いです。
iPhotoでリサイズできなかったのはApp Storeにあるウインドウリサイズアプリケーションで試したらそれらもリサイズできない物がありました。
iPhotoのリサイズの対応をしたらmiでリサイズ後にウインドウの中身がちゃんと更新されていなかったのが更新されるようになりました。
最初はシンプルだったけど、いろいろごちゃごちゃしてきました。しかし、欲しいと思った機能は一通り追加できたのでこれ以上ごちゃごちゃすることはなさそうです。
ユーザ定義のリサイズ設定は無駄に9個も設定できるようにしてみました。ちなみに、設定は上から順番に埋めていかなくても大丈夫です。
b2二日目ですが今のところ特に大きな不具合はなさそうです。ズームボタンを押しても反応しなかったことが一回あり更なる調整中です。
自分は普通のマウス派でマウスでエクスポゼを手軽に実行できないか考えた時に、ウインドウタイトルバーダブルクリックでできたらいいのでは、と思って、あんまり関係ない機能だけど追加しやすかったのでやってみました。この機能に問題ないかどうかは現在テスト中です。
Moomという同種のアプリケーションを見てどうなっているのか考えた時に、CGEventTapCreateでマウスダウンイベントをチェックしてマウスダウンしたところをAXUIElementCopyElementAtPositionで調べてズームボタンならイベントを取り消して、こっちのリサイズ処理をすると言う方法を思いついて、試したらうまくいきました。
クリック時にちょっと処理をしていてCore 2 Duo 2.4GHzでCPU負荷が0.1%程になります。実際の操作には特に影響は感じません。
miでも使えるようになったのは嬉しいところです。
実際のリサイズ処理をAppleScriptでSystem Eventsでやるようにした為かリサイズにちょっと時間がかかるようになってしまいました。
開発中にWindowResizeSuruyoをテストしたらWindowResizeSiyouを使っているアプリケーションが落ちました。SIMBLプラグインは難しいと実感しました。でも、さっき完成したアプリで試したら大丈夫でした。
最初はすごいシンプルだったのにいろいろ機能を付けていったらごちゃごちゃしてきました…。いらないボタンがあって気になる場合はアプリケーション内にあるhtmlを変更してください。見た目をもっとクールにしたい場合もここにあるCSSやhtmlを変更して下さい。ソースは凄い見づらいと思いますけども。
複数ウインドウリサイズ時に下のウインドウのズームボタンを押してリサイズした時に下のウインドウが手前に来ないのが、ちょっと期待通りの動作じゃなくて戸惑うかな。
現在も調整中ですが自分の使っているプリセットはこんな感じです。書き方などが分からない場合に参考にしてください。もちろんコピーして貼付けて使うこともできます。
動画のながら見の時に二つ目のディスプレイの左下1/4で再生することが多いので、そこに簡単に移動できるようになっています。あと、Safariは2/3サイズで表示するのでそれが簡単にできるようになっています。
mplayer,iTunes,VLC 動画大 6,6,0,0,2,5,2 第2モニタ、左半分
mplayer,iTunes,VLC 動画小 6,6,0,3,2,5,2 第2モニタ、左下1/4
mplayer,iTunes,VLC 動画小、上 6,6,0,0,2,2,2 第2モニタ、左上1/4
mplayer,iTunes,VLC Move Next 6,6,0,5,0,5,2 第2モニタ左下移動
* 通常 6,6,2,0,5,5 横幅2/3、右端
* 通常中央 6,6,1,0,4,5 横幅2/3、中央
* Move Next 6,6,2,1,2,1,next 次のモニタに移動
* Full Next 2,2,0,0,1,1,next 次のモニタで全画面/code>
* right zoom 6,6,0,0,5,5 全画面
* middle zoom 6,6,0,0,2,5 左半分
* right minimize return 戻す
* middle minimize 6,6,2,2,2,2,next 次のディスプレイ
Finder middle zoom 2,2,0,0,0,1&2,2,1,0,1,1 横に並べる
mplayer,iTunes,VLC right zoom 6,6,0,0,2,5,2 第2モニタ、左半分
mplayer,iTunes,VLC middle zoom 6,6,0,3,2,5,2 第2モニタ、左下1/4
Safari middle zoom 6,6,2,0,5,5 通常
今後の開発の参考にしたいので是非投票して下さい。