KiwiDeskKiwiDesk
Mac を使うすべての人へ

ウインドウが、ひとりでに片づく

KiwiDesk は開いているウインドウを、自動できれいなレイアウトに並べます。角をドラッグすることも、隠れた 1 枚を探すことももうありません。ただ静かで、片づいた画面だけ。始めるのは簡単で、必要になったら奥へ進めます。

🥝 パブリックベータ — 今すぐ使えます
ちゃんと動く、macOS のためのタイル型ウインドウマネージャ

フラットな配列で考える、タイル型

KiwiDesk はウインドウを i3 のようなツリーではなくフラットな配列で管理します。Lua で全面的に設定でき7 つのレイアウトを切り替えられます。そしてSIP を無効化しません

🥝 パブリックベータ — 今すぐ使えます

「タイル型のウインドウマネージャは、ずっと一部の人の玩具でした。私はそれを、誰にとっても直感的なものにしたかったのです。ただ、こんなふうに動いてくれればいい。」

「働き方を教え込む相手ではなく、あなたと一緒に働くウインドウマネージャ。」

はじめての方はこちら

KiwiDesk とは、結局なに?

あの散らかりようをご存じでしょう。十数枚のウインドウが重なり、半分は隠れ、一日じゅう少しずつ動かして過ごす。その「少しずつ動かす」を KiwiDesk が引き受けます。ウインドウを開けば、ほかの隣にすっと収まります。端から端まで整い、頼んでもいない隙間はできません。

基本を学ぶ
キウイに会う

ウインドウがひとりでに片づくところを見る

マスコットがひと画面ぶんのウインドウを楽しげに整えていく、10 秒の小さな映像です。KiwiDesk のやり方に、ちょっとした愛嬌を添えて。

クリックで再生 — 10 秒 🥝

「ひとこと注意を。キウイがキウイを積み上げるのを眺めるのと同じくらい、妙に心地よいです。並ぶところを見たいがために、わざとウインドウを開くようになります。」

仕組み

静かな画面まで、3 ステップ

儀式めいた初期設定も、マニュアルもありません。ただ、助けはじめます。

  1. ウインドウを開く

    いつもどおりに使ってください。App を開き、調べ、書く。新しく覚えることはありません。

  2. ひとりでに整う

    それぞれのウインドウが自動できれいな場所に収まります。すべてが見えていて、埋もれるものはありません。

  3. 流れを止めない

    動かしたくなったら、キーを 1 つ叩けばレイアウトが動きます。それ以外のときは、集中しているあいだずっと整ったままです。

心地よさの理由

もっと穏やかな働き方へ

KiwiDesk なし

ウインドウが積み重なり、重なり合う。ドラッグして、サイズを変えて、目当ての一枚を探す——何度も何度も。

KiwiDesk あり

すべてに居場所があります。画面はひとりでに整うので、あなたは仕事に集中していられます。

  • ウインドウがひとりでに収まる
  • ほかのウインドウの陰に隠れない
  • 隅々まで macOS のために作られた、ネイティブな使い心地
  • そのまま使えて、必要なら細かく設定できる

「KiwiDesk を作ったのは、ウインドウを二度と片づけなくていい心地よさを友人たちに見せたかったからです。静かで、力がいらなくて、正直なところ、ちょっと楽しい。」

— Maikel、より静かで心地よいデスクトップのためにキウイを植えています
KiwiDesk である理由

一つの考えを、丁寧に形にしました

フラットな一次元のウインドウモデル。そこから自然に生まれる、速くて、スクリプトから扱えて、安全なすべて。

ツリーではなくフラットな配列

どのスペースもフラットなウインドウの一覧です。レイアウトはその配列に対する純粋な関数で、ツリーをいじることは一切ありません。

7 つのレイアウト

bsp、スタック、スクロール(PaperWM 風)、モノクル、グリッド、トラック、フローティング。いつでも即座に切り替えられます。

Lua による設定

サンドボックス化された Lua 5.5 VM が ~/.config/KiwiDesk/init.lua を読み込みます。設定が壊れていてもウインドウは固まりません。500 ms のウォッチドッグが守ります。

CLI とソケット IPC

すべてをスクリプトから操作できます。ソケット経由でイベントを SketchyBar や JankyBorders、自作のツールへ流せます。

滑らかなアニメーション

モニタごとに 1 つの display link を使うので、60 Hz と 120 Hz が混在する環境でも、それぞれが本来のリズムで滑らかに動きます。

SIP を無効化しない

動作はすべてユーザ空間です。モーダルなキーバインドは Carbon を使うため、入力監視の許可は不要で、キーロガーにもなりません。

「ターミナルはまったく苦になりませんが、思いどおりにウインドウを並べるためだけにコンテナの入れ子をずっと追いかけるのには疲れてしまいました。KiwiDesk はすべてをフラットに保ちます。無駄なオーバーヘッドも、気の散る要素もなく、ただプロジェクトに集中できます。」

7 つのレイアウト

いつでも、キー 1 つ先に

どのレイアウトも、同じフラットな配列に対する純粋な関数です。だから切り替えは一瞬で、結果も読めます。

BSP

二分割による、正方形に近い分割。

Stack

マスター領域と、その横のスタックカラム。

Scrolling

Niri / PaperWM 式の水平カラム。

Monocle

フォーカス中のウインドウを最大化し、残りは背面へ。

Grid

動的または固定の、行 × 列。

Track

カラムまたは行。どのサイズ変更にも、対象は 1 つだけ。

Floating

macOS のデフォルトを、そのまま。

設定

Lua で書く

スライダーより、テキスト派? ~/.config/KiwiDesk/init.lua に本物の Lua を書けば、そちらが主導権を握ります。レイアウトも間隔もキーバインドも、すべてコードで。サンドボックス化された Lua 5.5 VM 上で 500 ms のウォッチドッグ付きで動くため、書き間違いでウインドウが固まることはありません。

init.lua
-- ~/.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、自作のツールへ流し込んでも構いません。

「ウインドウマネージャがスクリプトから動かせるようになった日から、デスクトップは自分で回りはじめました。以来、ウインドウをドラッグしていません。」

zsh — kiwidesk
$ kiwidesk set_mode monocle
$ kiwidesk focus left
$ kiwidesk get_state
# ライブイベントを配信(SketchyBar や自作ツールへ)
$ kiwidesk subscribe space_change
クイックスタート

KiwiDesk をインストールする

KiwiDesk 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 以降が必要です。

zsh — install
$ brew install --cask kiwicanopy/tap/kiwidesk
# kiwidesk CLI も PATH に入ります
ソースからビルドする場合
zsh — build
$ git clone https://github.com/KiwiCanopy/KiwiDesk.git
$ cd KiwiDesk
$ swift build -c release
# コントリビューター向け — 手軽なのは Homebrew
準備ができたら、いつでも

画面に、少しの静けさを

KiwiDesk 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 以降向けです。