Flache Arrays, keine Bäume
Jeder Space ist eine flache Fensterliste. Layouts sind reine Funktionen über dieses Array — niemals Baum-Chirurgie.
KiwiDesk ordnet deine offenen Fenster automatisch zu einem sauberen Layout. Kein Ziehen an Ecken mehr, keine Suche nach dem einen versteckten Fenster. Einfach ein ruhiger, aufgeräumter Bildschirm. Einfach für den Anfang — mit Raum zum Mitwachsen, wenn du so weit bist.
🥝 Öffentliche Beta — ab sofort verfügbarKiwiDesk verwaltet Fenster in flachen Arrays, nicht in i3-artigen Bäumen — voll in Lua konfigurierbar, mit sieben Layouts zum Umschalten. Und es deaktiviert nie SIP.
🥝 Öffentliche Beta — ab sofort verfügbar„Tiling-Manager waren immer nur was für Nerds. Ich wollte, dass sie für alle intuitiv funktionieren – wie von Zauberhand.“
„Ein Fenstermanager, der mit dir arbeitet — und nicht einer, dem du erst erklären musst, wie er arbeiten soll.“
Du kennst das Chaos: ein Dutzend überlappender Fenster, die Hälfte davon verdeckt, und du verbringst den Tag damit, sie hin und her zu schieben. KiwiDesk übernimmt dieses Schieben für dich. Öffne ein Fenster, und es fügt sich sauber neben die anderen ein — ordentlich, Kante an Kante, ohne Lücken, um die du nicht gebeten hast.
Die Grundlagen lernenZehn verspielte Sekunden mit unserem Maskottchen, das fröhlich einen Bildschirm voller Fenster an seinen Platz bringt — ganz nach KiwiDesk-Art, nur mit ein bisschen extra Charme.
Zum Abspielen klicken — 10 Sekunden 🥝
„Kleine Warnung: Es ist ungefähr so wohltuend, wie Kiwis dabei zuzusehen, wie sie Kiwis stapeln. Du wirst absichtlich Fenster öffnen, nur um zuzusehen, wie sie an ihren Platz wandern.“
Keine Einrichtungsrituale, keine Handbücher. Es fängt einfach an zu helfen.
Arbeite wie immer — öffne Apps, surfe, schreibe. Nichts Neues zu lernen.
Jedes Fenster gleitet automatisch an einen ordentlichen Platz. Jedes Fenster sichtbar, nichts verschüttet.
Ein Tastendruck rückt das Layout zurecht, wenn du magst. Ansonsten bleibt einfach alles ordentlich, während du dich konzentrierst.
Fenster türmen sich und überlappen. Du ziehst, änderst Größen und suchst nach dem einen, das du brauchst — immer und immer wieder.
Alles hat seinen Platz. Dein Bildschirm bleibt von allein aufgeräumt, damit deine Aufmerksamkeit bei deiner Arbeit bleibt.
„Ich habe KiwiDesk gebaut, weil ich meinen Freunden zeigen wollte, wie entspannt es ist, seine Fenster nie wieder manuell verrücken zu müssen — ruhig, mühelos und Spaß macht es auch.“
Ein flaches, eindimensionales Fenstermodell — und alles Schnelle, Skriptbare und Sichere, das daraus folgt.
Jeder Space ist eine flache Fensterliste. Layouts sind reine Funktionen über dieses Array — niemals Baum-Chirurgie.
bsp, stack, scrolling (PaperWM), monocle, grid, track und floating. Wechsle blitzschnell zwischen ihnen.
Eine isolierte Lua-5.5-VM liest ~/.config/KiwiDesk/init.lua. Eine fehlerhafte Konfiguration kann deine Fenster nicht einfrieren — ein 500-ms-Watchdog passt auf.
Skripte alles. Streame Events über einen Socket an SketchyBar, JankyBorders oder deine eigenen Tools.
Ein Display-Link pro Monitor, sodass gemischte 60-/120-Hz-Setups jeweils in ihrer eigenen nativen Taktung animieren.
Nur im User-Space. Modale Tastenkürzel laufen über Carbon — keine Input-Monitoring-Berechtigung, kein Keylogger.
„Obwohl ich mich im Terminal absolut zuhause fühle, war ich es leid, ständig die verschachtelten Container im Hinterkopf behalten zu müssen, nur um meine Fenster so anzuordnen, wie ich will. KiwiDesk hält alles flach. Kein unnötiger Overhead, keine Ablenkung: einfach nur Fokus auf meine Projekte.“
Jedes Layout ist eine reine Funktion über dasselbe flache Array — das Umschalten klappt also sofort und vorhersehbar.
Binäre Raumaufteilung, annähernd quadratische Splits.
Ein Master-Bereich neben einer Stapel-Spalte.
Niri- / PaperWM-Spalten, horizontal.
Fokussiertes Fenster maximiert, der Rest dahinter.
Dynamische oder feste Zeilen × Spalten.
Spalten oder Zeilen; jedes Resize hat genau ein Ziel.
Der macOS-Standard, unangetastet gelassen.
Lieber Text statt Schieberegler? Schreib echtes Lua in ~/.config/KiwiDesk/init.lua, und es übernimmt — Layouts, Abstände, Tastenkürzel, alles als Code, ausgeführt in einer isolierten Lua-5.5-VM hinter einem 500-ms-Watchdog, sodass ein Tippfehler deine Fenster niemals einfrieren kann.
-- ~/.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)Jede Aktion ist ein Befehl. Binde sie an Tasten, skripte sie oder streame Live-Events über einen Unix-Socket in SketchyBar, JankyBorders oder deine eigenen Tools.
„Als mein Fenstermanager skriptbar wurde, fing mein Desktop an, sich selbst zu verwalten. Seitdem habe ich kein einziges Fenster mehr verschoben.“
$ kiwidesk set_mode monocle
$ kiwidesk focus left
$ kiwidesk get_state
# Live-Events streamen (für SketchyBar, eigene Tools…)
$ 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.
Zur DokuErfordert macOS 14 oder neuer.
$ brew install --cask kiwicanopy/tap/kiwidesk
# das kiwidesk-CLI landet ebenfalls in deinem PATH$ git clone https://github.com/KiwiCanopy/KiwiDesk.git
$ cd KiwiDesk
$ swift build -c release
# für Mitwirkende — Homebrew ist der einfache WegKiwiDesk 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.
„Die Leute sagen immer, "an apple a day" — aber die Kiwi hat mehr Vitamine und größere Pläne... 🥝“
Gemacht für macOS 14 und neuer.