ウィンドウをキッチリカッチリ配置したい
XではXdefaultsやfvwm2rcで、Virtual Desktopごとにgeometryをビシっと指定して常にきもちよくmltermとかのウィンドウが並ぶようにしているhirose31です。
Macでは基本的に終了時の位置を覚えててくれるんで、いちいち位置指定しなくてもいいんですが、MacBookを持ち歩いていて、オフィスでは外部モニタあり、自宅ではなしな生活だと、モニタをつなげる/外すたびに各ウィンドウがあっちゃいったりこっちゃいったりで大変落ち着きません。
調べたところ、AppleScriptを使えばウィンドウの位置、大きさを変えることができるとわかったので、
- MacBookのあらゆるウィンドウをキー操作で自在に操るために(AppleScript + Quicksilver) - ザリガニが見ていた...。
- AppleScriptであらゆるウィンドウを操作できなかった原因が分かった! - ザリガニが見ていた...。
- ウィンドウのサイズを変えたり位置を動かしたりするAppleScript を QuickSilverに登録すると快適 - hibomaのはてなダイアリー
立ちくらみがするぐらいベタなコードですがこんなAppleScriptを書いて、
モニタを繋ぎ変えるたびにこのスクリプトを実行しています。実行には、QuickSilverを愛用しているので、option-c(QS呼び出し) res(これでresize.scptが候補になるので) RET(実行) なキーシーケンスでやってます。指が覚えちゃったしそう頻度高くないんでまいっかーとTriggerには登録してません。
あと、自分の場合、作業内容に応じてブラウザのウィンドウを画面いっぱい(集中モード)と、下の方ちょっと空けた大きさ(空いたところ5,6行にLimeChatのログが見えるように)の2つで切り替えてます。
これもAppleScriptでできると思うんですが、なぜかJavaScriptでやってます。
Firefoxでは、
javascript:(function(){window.moveTo(0,0);window.resizeTo(window.screen.availWidth,window.screen.availHeight)})()
や
javascript:(function(){window.moveTo(0,0);window.resizeTo(window.screen.availWidth,window.screen.availHeight-84)})()
をブックマークして、keywordに「max」や「no」と入れておきます。
これで、⌘L max RET で画面いっぱいにしたり、⌘L no RET でちら見サイズにしたりできます。
Safariの場合は、Keywurl (Safari 5で動かす方法)を使って、同じようにキーワードで位置調整のjsを呼び出せるようにしています。
蛇足ですが、X11.appではxinitrcでビシっとgeometry指定してmltermなどを起動してます。
2016/04 追記
現在は↓です。
- scptじゃなくてappとして保存して使っている
- 実行は手動じゃなくて、ControlPlane を使ってモニタの抜挿をトリガとして自動で実行するようにしている