rcmdnk's blog

AppleScriptリファレンス

これまで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とかを実行してあげると 高さを短くしたりしてくれます。

windowResize.scpt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
property ONE_RESIZE : 50
on windowResize(xResize, yResize)
	tell application "System Events"
		set pList to name of every process whose frontmost is true
		set appName to item 1 of pList
		tell process appName
			try
				set topWindow to item 1 of (every window whose focused is true)
			on error
				set topWindow to window 1
			end try
			set winSize to size of topWindow
			set x to item 1 of winSize
			set y to item 2 of winSize
			set newSize to {x + xResize * ONE_RESIZE, y + yResize * ONE_RESIZE}
			tell topWindow
				set size to newSize
			end tell
		end tell
	end tell
end windowResize

こんな感じのスクリプトがメインのスクリプトです。 一番上にあるウィンドウを取ってきてそれのsizeを変更してあげるだけ。

これを

windowResizeHeightMinus.scpt
1
2
3
4
5
6
tell application "Finder"
	set scriptPath to (path to me)'s folder as text
end tell
set windowResizeScpt to scriptPath & "windowResize.scpt"
set windowResize to load script file windowResizeScpt
windowResize's windowResize(0, -1)

こんな感じのスクリプトで縦に縮める(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でのウィンドウのサインズ変更の取り扱いを変更した

MacでVimっぽくカーソルやマウス、ウィンドウを動かす

Macで最初に行う設定備忘録: その他の設定

ウィンドウのサイズを変更する時に1つ注意があって、 2枚のディスプレイを使っている時、 例えば左のディスプレイのが縦が小さい時、 右のディスプレイで縦を最大にして左に移すと下側が一部隠れてしまう時がありますが、 この状態さらに横幅もディスプレイをまたいでる場合、 横幅をディスプレイをまたぐのを辞めて縮める事は出来ません。

まず、縦幅を左ディスプレイの画面内に収まる様にしてからでないと 横幅をディスプレイに収まるように縮める事が出来ません。

これに関連して、ウィンドウを指定の大きさにする時も、 いきなりはみ出てる状態から小さくしようとしても、 横幅だけ長いまま残ってしまったりします。

ただ、何故か一気に小さく({100px, 100px}位)すると動く事があるので、 一旦この大きさに縮めてから指定の大きさにする、みたいな事をしたりもしています。 ここの所で以前は{1px, 1px}まで縮めて、みたいなことをしてたんですが、 これだとiTermとかでGNU screenを立ち上げてる時、 画面を小さくしようとし過ぎるとエラーを吐いて終了してDead ???な状態になって しまうことがあったので {100px, 100px}にして小さくしすぎないようにしています。

Sponsored Links
Sponsored Links

« Evernoteの新しい体系でもメールで50通までメール作成が無料でも出来る Macでログインシェルを確認/変更するいくつかの方法 »

}