- macOSで利用できるオープンソースのタイル型ウィンドウマネージャで、パフォーマンスと使いやすさを重視して開発中
- システム整合性保護(SIP)を無効化せずに動作し、macOSの「Displays have separate Spaces」オプションと互換性のある数少ないウィンドウマネージャの1つ
- i3/swayおよびbspwmに似たさまざまなレイアウトスタイルをサポート
- Mission Controlスタイルのワークスペース移動やトラックパッドジェスチャーなど、macOSネイティブ環境との自然な連携を提供
- アニメーション性能とユーザー体験を重視し、設定のホットリロードと外部プログラムとの連携機能が特長
- 既存のmacOS向けタイル型ウィンドウマネージャであるAerospaceの長所(パフォーマンス、柔軟性など)を一部継承しつつ、アニメーション対応やマルチディスプレイ環境で1つのディスプレイだけをフルスクリーンにするなどの追加機能を目指している
主な機能
- 複数のレイアウトスタイル: i3やswayのようにウィンドウをグリッド状に配置したり、bspwmスタイルの二分空間分割方式をサポート
- メニューバーアイコン: すべてのワークスペースと、そのワークスペース内のレイアウト状況を視覚的に表示
- macOSのMission Controlスタイルのナビゲーション: ワークスペース間の切り替えを視覚的に簡単に管理可能
- マウスフォーカスの自動切り替えおよび自動前面化機能を提供
- ウィンドウのドラッグ時に位置を入れ替えでき、アニメーションも滑らかに動作
- トラックパッドジェスチャー利用時に、macOSネイティブのようなワークスペース切り替えが可能
- **実行中の設定変更(ホットリロード)**をサポートし、リアルタイムでの構成変更が非常に容易
- Sketchybarなどのサードパーティプログラムとのインターフェース、およびCLIまたはmach portを介した連携をサポート
- ワークスペース変更やウィンドウ変化時に**シグナル(Signals)**を外部へ送信でき、シグナルはCLIまたはmach接続を通じて送出可能
1件のコメント
Hacker Newsのコメント
昔は i3 をかなり使い込んでいた。i3 は非常に柔軟で設定の自由度も高く、単にウィンドウを動かす以上のことができる。ただ、Mac に移ってからは、多機能で安定したタイル型ウィンドウマネージャーが見つからなかった。いろいろ試した末に、今はただ Rectangle を使っている。Rectangle は本当の意味でのウィンドウマネージャーではなく、ウィンドウを左/右/上/下や 3/4/6 分割へ簡単に動かすためのショートカットを提供するだけだ。自分の使い方の 80% くらいはカバーしてくれるし、カスタム設定も不要で予期しない挙動もないので満足している。年を取ると、いろいろなカスタム設定に時間をかけるのもしんどい。Rectangle 公式サイト
5k/6k ディスプレイでは一般的なタイル配置には限界がある――ウィンドウが大きくなりすぎる。だから moon のようなアプリのほうがずっと良いと思う。Windows には Moom のようなアプリがないので、komorebi のようなタイル型マネージャーを使っている。複数の OS やデバイスを行き来する人間として、rift が汎用的な alt+hjkl のようなキーバインドをサポートしていないのは残念だ。超高解像度やウルトラワイドモニターでは、こうしたウィンドウ配置が必須だと思う(komorebi は対応している)
多くの人には物足りないかもしれないが、自分のように Mac では主に 1 つのウィンドウしか使わない、あるいは外部モニター接続時だけ 2 画面を使う程度なら、この標準機能MacOS 公式ウィンドウ分割ガイドで十分だ(自分はヘビーなタイル派ではない)
macOS でフルスクリーンとトラックパッドジェスチャーが本当に魅力的に感じられるのは、たいてい 1 つのウィンドウでしか作業しないからだ。でも、ターミナル・エディタ・ブラウザの DevTools・ログ・文書のように複数のウィンドウを同時に開く必要があるときは、レイアウトの予測可能性がとても重要になる。タイルツールは単に 2 つのウィンドウを並べるだけではなく、
自分は Mac では Rectangle や Moom で 80% ほど解決し、それ以外は Aerospace や Rift を使っている。ウィンドウ数や切り替え頻度が増えるほど、タイル型ウィンドウマネージャーの有用性ははっきりしてくる
以前、自分専用のウィンドウマネージャーを作ろうとしたことがあるが、macOS にはまともな API がなくてすぐ諦めた。実際にはアクセシビリティ API をハックして使うしかない。このプロジェクトも Objective C バインディングとアクセシビリティ API を使っているようだが、デバッグや機能実装、それから主にどんなツールを使ったのか気になる
自分も最近、Aerospace をかなり手に馴染むよう設定するために大変な yak shaving を経験した。ショートカットが大量に衝突するとき、みんなどう解決しているのか気になる。自分は hjkl の組み合わせに慣れているので、これで大半を割り当てたくなるが、Aerospace のモーダル機能がショートカット衝突を多少は解消してくれる。最終的にみんなどういう設定にしているのだろう?
go-to、move-toモードで文字/数字に合わせて素早くウィンドウ移動)。ターミナルで zellij/tmux を使い、leader key ベースの操作性を拡張した感じで満足している。ひとつ困るのは、Aerospace が画面切り替え後にウィンドウを隠してしまうので、下の隅で探し回ることがよくある点だHammerspoon を使えば自分でウィンドウマネージャーを作れる。自分は Divvy が提供していたモーダル方式(コマンド単打でレイアウト切り替え)が好きだが、残念ながらもうメンテナンスされていない。そこで OpenAI Codex で自分用のモーダルウィンドウマネージャーを作ってみた hammerspoon 用ウィンドウマネージャーのソースコード。こういうアプローチを共有すると面白いかもしれない!
MacBook のトラックパッドユーザーなら、Swish だけはどのアプリよりも圧倒的だ Swish 公式サイト
これ(nix flake)で設定した人いる? yabai 以降いろいろなウィンドウマネージャーを試しているけど、Aerospace はイベント処理の問題なのか、sketchybar できれいなワークスペース表示をしようとすると時々ラグが出る。次はこれ(rift)も試してみようかと思う
なぜ macOS でタイル型ウィンドウマネージャーが必要なのか分からない。ウィンドウを並べる必要なんてそんなに頻繁にあるだろうか。大半のアプリはフルスクリーンにして、4 本指スワイプで切り替えれば十分では? 誰か説得してほしい