これまでMacでAppleScriptを使ったウィンドウサイズを指定の大きさに変えるものや ウィンドウを移動させる物を作って使ってましたが、 ウィンドウサイズをちょっとずつ縦横に伸ばしたり縮めたり出来る スクリプトを作ってみました。
windowResize
スクリプトはここに入っています。
中のwindowResize*が新しく加えたもの。
これらはosadecompileしたものなので
内容をAppleScript EditorにコピーしてwindowResize.scptとかに
保存し直すか、
$ osacompile -o windowResize.scpt windowResize.applescript
の様にosacompileしてあげるか、
もしくは上のレポジトリのものを全部
$HOME/Library/Scriptsに入れていいなら
レポジトリを取ってきて中のinstall.shを実行すれば
全部osacompileして入れてくれます。
$HOME/Library/Scripts以外の場所でも良いですが、
windowResize*.scptを全部同じディレクトリに置いて
後はwindowResizeHeightMinus.scptとかを実行してあげると
高さを短くしたりしてくれます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | |
こんな感じのスクリプトがメインのスクリプトです。
一番上にあるウィンドウを取ってきてそれのsizeを変更してあげるだけ。
これを
1 2 3 4 5 6 | |
こんな感じのスクリプトで縦に縮める(y方向に-1)とか
作っていきます。
(1, 0)なら幅を伸ばす、(-10, -10)なら大きく縦横方向に縮める、的な事が出来ます。
これらのスクリプトを呼べばウィンドウサイズを伸び縮みさせる事が出来ますが、 このままでは使いづらいので、各スクリプトをBetterTouchTool を使ってショートカットに割り当てます。
- windowResizeWidthMinus: 幅を縮める。(⇧-⌃-Y)
- windowResizeHeightPlus: 縦に伸ばす。(⇧-⌃-U)
- windowResizeHeightMinus: 縦に縮める。(⇧-⌃-I)
- windowResizeWidthPlus: 幅を伸ばす。(⇧-⌃-O)
な感じにしています。
縮めたりする幅を反抗したい場合はwindowResize.scptの中の
property ONE_RESIZE : 50
を適当な数字に替えて上げればOK。
他のウィンドウのサイズを指定のものにしたり 移動させる物は下を参照。
YosemiteからRuby1.8が削除されたのでAppleScriptでのウィンドウのサインズ変更の取り扱いを変更した
ウィンドウのサイズを変更する時に1つ注意があって、 2枚のディスプレイを使っている時、 例えば左のディスプレイのが縦が小さい時、 右のディスプレイで縦を最大にして左に移すと下側が一部隠れてしまう時がありますが、 この状態さらに横幅もディスプレイをまたいでる場合、 横幅をディスプレイをまたぐのを辞めて縮める事は出来ません。
まず、縦幅を左ディスプレイの画面内に収まる様にしてからでないと 横幅をディスプレイに収まるように縮める事が出来ません。
これに関連して、ウィンドウを指定の大きさにする時も、 いきなりはみ出てる状態から小さくしようとしても、 横幅だけ長いまま残ってしまったりします。
ただ、何故か一気に小さく({100px, 100px}位)すると動く事があるので、
一旦この大きさに縮めてから指定の大きさにする、みたいな事をしたりもしています。
ここの所で以前は{1px, 1px}まで縮めて、みたいなことをしてたんですが、
これだとiTermとかでGNU screenを立ち上げてる時、
画面を小さくしようとし過ぎるとエラーを吐いて終了してDead ???な状態になって
しまうことがあったので
{100px, 100px}にして小さくしすぎないようにしています。
