ツリーではなくフラットな配列
どのスペースもフラットなウインドウの一覧です。レイアウトはその配列に対する純粋な関数で、ツリーをいじることは一切ありません。
KiwiDesk は開いているウインドウを、自動できれいなレイアウトに並べます。角をドラッグすることも、隠れた 1 枚を探すことももうありません。ただ静かで、片づいた画面だけ。始めるのは簡単で、必要になったら奥へ進めます。
🥝 パブリックベータ — 今すぐ使えますKiwiDesk はウインドウを i3 のようなツリーではなくフラットな配列で管理します。Lua で全面的に設定でき、7 つのレイアウトを切り替えられます。そしてSIP を無効化しません。
🥝 パブリックベータ — 今すぐ使えます「タイル型のウインドウマネージャは、ずっと一部の人の玩具でした。私はそれを、誰にとっても直感的なものにしたかったのです。ただ、こんなふうに動いてくれればいい。」
「働き方を教え込む相手ではなく、あなたと一緒に働くウインドウマネージャ。」
あの散らかりようをご存じでしょう。十数枚のウインドウが重なり、半分は隠れ、一日じゅう少しずつ動かして過ごす。その「少しずつ動かす」を KiwiDesk が引き受けます。ウインドウを開けば、ほかの隣にすっと収まります。端から端まで整い、頼んでもいない隙間はできません。
基本を学ぶマスコットがひと画面ぶんのウインドウを楽しげに整えていく、10 秒の小さな映像です。KiwiDesk のやり方に、ちょっとした愛嬌を添えて。
クリックで再生 — 10 秒 🥝
「ひとこと注意を。キウイがキウイを積み上げるのを眺めるのと同じくらい、妙に心地よいです。並ぶところを見たいがために、わざとウインドウを開くようになります。」
儀式めいた初期設定も、マニュアルもありません。ただ、助けはじめます。
いつもどおりに使ってください。App を開き、調べ、書く。新しく覚えることはありません。
それぞれのウインドウが自動できれいな場所に収まります。すべてが見えていて、埋もれるものはありません。
動かしたくなったら、キーを 1 つ叩けばレイアウトが動きます。それ以外のときは、集中しているあいだずっと整ったままです。
ウインドウが積み重なり、重なり合う。ドラッグして、サイズを変えて、目当ての一枚を探す——何度も何度も。
すべてに居場所があります。画面はひとりでに整うので、あなたは仕事に集中していられます。
「KiwiDesk を作ったのは、ウインドウを二度と片づけなくていい心地よさを友人たちに見せたかったからです。静かで、力がいらなくて、正直なところ、ちょっと楽しい。」
フラットな一次元のウインドウモデル。そこから自然に生まれる、速くて、スクリプトから扱えて、安全なすべて。
どのスペースもフラットなウインドウの一覧です。レイアウトはその配列に対する純粋な関数で、ツリーをいじることは一切ありません。
bsp、スタック、スクロール(PaperWM 風)、モノクル、グリッド、トラック、フローティング。いつでも即座に切り替えられます。
サンドボックス化された Lua 5.5 VM が ~/.config/KiwiDesk/init.lua を読み込みます。設定が壊れていてもウインドウは固まりません。500 ms のウォッチドッグが守ります。
すべてをスクリプトから操作できます。ソケット経由でイベントを SketchyBar や JankyBorders、自作のツールへ流せます。
モニタごとに 1 つの display link を使うので、60 Hz と 120 Hz が混在する環境でも、それぞれが本来のリズムで滑らかに動きます。
動作はすべてユーザ空間です。モーダルなキーバインドは Carbon を使うため、入力監視の許可は不要で、キーロガーにもなりません。
「ターミナルはまったく苦になりませんが、思いどおりにウインドウを並べるためだけにコンテナの入れ子をずっと追いかけるのには疲れてしまいました。KiwiDesk はすべてをフラットに保ちます。無駄なオーバーヘッドも、気の散る要素もなく、ただプロジェクトに集中できます。」
どのレイアウトも、同じフラットな配列に対する純粋な関数です。だから切り替えは一瞬で、結果も読めます。
二分割による、正方形に近い分割。
マスター領域と、その横のスタックカラム。
Niri / PaperWM 式の水平カラム。
フォーカス中のウインドウを最大化し、残りは背面へ。
動的または固定の、行 × 列。
カラムまたは行。どのサイズ変更にも、対象は 1 つだけ。
macOS のデフォルトを、そのまま。
スライダーより、テキスト派? ~/.config/KiwiDesk/init.lua に本物の Lua を書けば、そちらが主導権を握ります。レイアウトも間隔もキーバインドも、すべてコードで。サンドボックス化された Lua 5.5 VM 上で 500 ms のウォッチドッグ付きで動くため、書き間違いでウインドウが固まることはありません。
-- ~/.config/KiwiDesk/init.lua
KiwiDesk.set_gap_global(10)
KiwiDesk.set_mode("music", "floating")
-- one flat array per space, tidy by default
KiwiDesk.bind("cmd+alt+left", function()
KiwiDesk.focus("left")
end)すべての操作がコマンドです。キーに割り当てても、スクリプトから呼び出しても、Unix ソケット経由でイベントを SketchyBar や JankyBorders、自作のツールへ流し込んでも構いません。
「ウインドウマネージャがスクリプトから動かせるようになった日から、デスクトップは自分で回りはじめました。以来、ウインドウをドラッグしていません。」
$ kiwidesk set_mode monocle
$ kiwidesk focus left
$ kiwidesk get_state
# ライブイベントを配信(SketchyBar や自作ツールへ)
$ kiwidesk subscribe space_changeKiwiDesk is in public beta. Install it with Homebrew — one command, and the kiwidesk CLI comes with it. Homebrew also keeps it current with brew upgrade. A signed, notarized download follows once the app can update itself, so a direct download is never a dead end.
ドキュメントを読むmacOS 14 以降が必要です。
$ brew install --cask kiwicanopy/tap/kiwidesk
# kiwidesk CLI も PATH に入ります$ git clone https://github.com/KiwiCanopy/KiwiDesk.git
$ cd KiwiDesk
$ swift build -c release
# コントリビューター向け — 手軽なのは HomebrewKiwiDesk is out in public beta — you can install it today with Homebrew, which keeps it current with brew upgrade. A signed direct download follows once the app can update itself.
「1 日 1 個のリンゴと言いますが、キウイのほうがビタミンも多く、野心も大きいのです… 🥝」
macOS 14 以降向けです。