KiwiDesk の位置づけ
KiwiDesk と、macOS の他のウインドウマネージャー
macOS には優れたウインドウマネージャーがあり、このページはそれらが劣っていると主張するものではありません。yabai や AeroSpace、Magnet の代わりを探している場合も、どれから始めるか迷っている場合も、どれがあなたの働き方に合うかを手早く見極めてもらうためのものです — 答えが KiwiDesk ではない場合も含めて。
ここに書いたことはすべて、各プロジェクト自身のドキュメントで確認しています。出典が重要な記述には、私たち自身のものも含めてリンクを付けました。確認できなかったことは、推測せずにそう書いています。
表のセルはあえて簡潔にしています — 根拠は下の各セクションにあり、ガイドが KiwiDesk の 7 つのレイアウトを説明しています。レイアウトの数は各プロジェクトのドキュメントに基づき、2026 年 8 月時点で確認したものです。これらのプロジェクトは動きが速いので、古くなっている点があればぜひ教えてください。
KiwiDesk が実際に違うところ
5 つあります — そのどれも、他が仕事を下手にこなしているという話ではありません。
1設定 App の下にスクリプト VM があること
yabai、AeroSpace、Rift は設計上、設定ファイルが先です。ファイルを書き、再読み込みし、また書く。それを楽しめる人には良い方法ですが、それ以外の人には壁になります。ただし OmniWM も設定 App を備えているので、GUI があること自体はもう KiwiDesk を分けるものではなく、このページはそれを取り繕いません。違うのはその下にあるものです。KiwiDesk は設定 App にサンドボックス化された Lua VM、CLI、JSON イベントストリームを組み合わせ、OmniWM は TOML ファイルを組み合わせています。レイアウト、余白、App ごとのルール、ショートカット、プロファイル — すべてどちらの側からも届くので、深さは必要になったときに手を伸ばすものであり、入場料ではありません。
2ネイティブタブでレイアウトが散らからない
Finder や Safari、Ghostty で 2 つ目のタブを開くと、macOS は静かに 2 つ目のウインドウを作ります。タイル型のレイアウトにタブが余計なタイルを撒き散らしがちなのはこのためです。Ghostty 自身のドキュメント ↗は、これを yabai と AeroSpace の既知の問題として挙げ、修正は自分たちの側にはないと述べています。macOS のウインドウ API がそういう仕組みだからです。Rift でも独自の Issue として未解決のままで、OmniWM はネイティブタブ対応を機能として挙げていますが、その挙動までは説明していません。KiwiDesk は切り替えを認識し、タブのグループを 1 つのタイルに保ちます。フロート状態も並び順もそのままです。できないこと — そしてこれは誰にもできないこと — は、2 つのタブを 2 つのタイルに分けることです。それにはプロセスをまたぐウインドウの付け替えが必要で、macOS はそれを許していません。私たちはそれをはっきり書いています。あなたが自分で気づくまで黙っているのではなく。
3キーボードだけでなく、マウスのためにも作られている
yabai と AeroSpace は設計上キーボードが中心で — AeroSpace にはマウスの話がまったくありません — 多くの人にとってはそこが壁になります。KiwiDesk は両方のために作られていますが、それは KiwiDesk だけではありません。OmniWM には独自のマウスによるサイズ変更とトラックパッドジェスチャがあり、この点では両者は同等で、どちらかが先んじているわけではありません。KiwiDesk が用意しているのは、デスクトップ上をドラッグすると着地先をその場で示すドロップターゲット、ウインドウをドロップして別のスペースへ送れる Space Bar、そして密なレイアウトでキーボードの位置を教えるフォーカスリングです。App Bar と Space Bar は App の一部であり、別途インストールして設定するデーモンではありません。ショートカット、モード、App 起動の割り当ても内蔵で、yabai が skhd に頼る部分をカバーします。
4SIP を切らずに、ネイティブの macOS デスクトップを扱う
ここは正直に書きます。KiwiDesk 自身のスペースは、非アクティブなウインドウを画面の隅に寄せて隠すことで実現しています。AeroSpace が説明している ↗のと同じ手法で、私たちは自分たちのドキュメントでそのことを引用しています。違うのは、KiwiDesk が普段スワイプで行き来しているネイティブの macOS デスクトップも操作できる点です。ウインドウをデスクトップ 3 に送り、そこへ切り替え、プロファイルをデスクトップに結びつけておけば、そこへ着いた瞬間に設定一式が読み込まれます。yabai は同じ操作を、SIP の無効化が必要な Scripting Addition 経由で行います。KiwiDesk はSIP を切るよう求めたことはなく、今後もありません。そして、どこにでも置いておきたいウインドウ — 通話、メモ、電卓 — は Sticky にでき、ウインドウ自身の印と Space Bar のタイル上のバッジを伴って、すべてのスペースに付いてきます。
5macOS で許される限り、要求は少なく
KiwiDesk が求めるのはアクセシビリティだけです。入力監視は使いません。ショートカットは Carbon 経由なので、すべてのキー入力を読み取る権限を求めることはありません。画面収録もなし。そしてSIP も切りません。macOS の「ディスプレイごとに個別の操作スペース」がオンでもオフでも動作します — OmniWM 自身の README ↗ はオンであることを要求し、有効にするまでウインドウ管理を停止します。アップデートは App 自身に届くので、brew upgrade を習慣にする必要もありません。代償もはっきり書いておきます。入力監視を使わない以上、macOS 自身のショートカットとぶつかったときは macOS 側が勝ちます。もう一度選んでも同じ判断をしますが、それでも取引ではあります。
では、どれを選ぶべきか
選ぶなら…
- yabai
- ウインドウマネージャーを深くスクリプトしたく、シェルの設定に慣れていて、フル機能のための SIP の妥協を受け入れられるなら。
- AeroSpace
- 高速でキーボードだけの i3 風のワークフローが欲しく、macOS のスペースと付き合うより置き換えたいなら。
- Rift
- スクロール列を備えた、設定ファイル方式の現代的な Rust 製が欲しく、若いプロジェクトでも気にならないなら。
- OmniWM
- 設定 App と niri 風スクロールを備えた Swift 製で SIP を切らないものが欲しく、入力監視も個別スペースの要件も気にならないなら。
- Magnet
- ウインドウを画面の半分にスナップさせたいだけで、あとは二度と考えたくないなら。
- KiwiDesk
- 設定ファイルを書かずに本物のタイル型が欲しいなら — 設定 App、ちゃんと使えるマウス、内蔵のフォーカスリングとバー、SIP 有効のままのネイティブデスクトップとプロファイル連携、そして GUI で足りなくなったときのための Lua。
無料で MIT ライセンス、macOS 14 以降・Apple シリコン向けです。上のいずれかから移ってきましたか? Lua リファレンスが、設定がどこまで届くかを示します。