はじめに
ウィンドウを自由自在に動かす。ここには体感しないと分からない良さがある。昔はマウスでドラッグして、マウスでウィンドウをリサイズして、を繰り返すことでいい位置に配置していた。MacBookを買ってからはトラックパッドを使える分だいぶ体験は向上した。
しかし、一度キーボードでウィンドウを動かすことを覚えたらもう戻れない。ボタン一つでウィンドウがビュンビュン飛んで整列していく。効率化という枠組みを超えて操作性自体に爽快感があるのだ。
本記事ではRaycastとHammerspoonを用いたウィンドウコントロールとそのキーバインドについて語る。
RaycastのWindow management
RaycastはMacで使える無料のランチャーアプリで、Window managementという機能を搭載している。コマンドとしてウィンドウの操作を行うことができる。
「ウィンドウを右半分に表示する」などの基本的なコマンドに加えて、「ウィンドウを右下6分の1に表示する」など非常に細かくコマンドが実装されており、コマンドの総数は50以上に登る。キーバインドを設定して一発で発動させることもできるのだが、50以上登録するのは流石に覚えきれない。
暫く私が使っていて、使いやすいと思ったキーバインドを紹介する。
修飾子
修飾子はctrl+optionとしている。理由は、かつてMacのAppストアで不動の一位を誇っていたウィンドウ管理アプリMagnetがこの修飾子を採用しており、もう手に馴染んでしまっているからだ(現在は他の選択肢が増えて一位ではないことが多い)。実際、他のアプリとの競合で困った体験もない。
基本移動
矢印キーで右半分、上半分、下半分、左半分にウィンドウを移動する。この基本移動コマンドの重要な点は、連打すると1/3や2/3へのサイクルすることだ。Vim勢はhjklかもしれないが、矢印は矢印でトラックパッドから移動しやすいメリットもある。また、hjklは個人的には後述の用途のほうが使いやすい。
最大化
モニター間移動
複数モニターの時はモニター間移動が頻用。これは押しやすいほうがよく、spaceを使用している。
4分割
Jはホームポジションでキーボードに出っ張りがついており、見なくても確実に場所が特定できる。Jを基準に上下左右の4分割位置に移動する。
6分割
同様にFがホームポジションで出っ張りがついており、場所が特定しやすい。6分割なんて使うか?と思っていたが、ターミナルやMarpスライドの表示などで意外と活躍することがある。
中央表示
CenterのC。これがあると他との組み合わせで幅がだいぶ広がる。
Hammerspoon
Raycastを用いると、単一ウィンドウ移動に関しては問題なく、爽快感抜群である。ただし、複数ウィンドウ配置に関してはRaycast Proのサブスクに課金しないといけない。流石にWindow Managementだけを目当てにサブスクは厳しいと思って諦めていたのだが、最近Hammerspoonというツールを知った。
Hammerspoonはlua言語でMacのシステム制御を行うツールで、簡単に言うと自作Raycastができる。世はAgent Coding時代なのでHammerspoonのSpoon(プラグイン的)をClaude Codeを用いて作成した。
Ryoiki.spoon

下記のようにWindow配置を定義すると、ワンボタンでレイアウトを切り替えることができる(マルチモニター対応)。
-- reference.lua
return {
keybind = "ctrl+alt+3",
description = "Reference: Safari left, Notes right",
windows = {
{ app = "Safari", screen = 0, x = 0, y = 0, w = 0.6, h = 1, focus = true },
{ app = "Notes", screen = 0, x = 0.6, y = 0, w = 0.4, h = 1 },
},
}キーバインドは数字で切り替えることとした。
また、メニュー画面を開いてレイアウトを選ぶ事もできるのでMenuのMに割り当てた。
Ryoiki.spoonを用いると、例えば家に帰ってモニターに繋いでからワンボタンでメインモニターには左右分割でObsidianとChrome、サブモニターにはGhosttyのような配置が可能になる。
おわりに
ウィンドウ配置のキーバインドは合わせるとこのようになった。
キーボードでタタターンとウィンドウを配置していくのは病みつきになる。百聞に一見はしかずであるので、興味があれば導入を推奨する。
また、Ryoiki.spoonを作るきっかけになったJINRAIはウィンドウフォーカスを司る神ツールなので、Hammerspoonを使うならば是非触ってみてほしい。