KiwiDeskKiwiDesk
Tiling, das sich anfühlt, als wäre es Teil von macOS.

Tiling, das in flachen Arrays denkt

KiwiDesk 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.

Kostenlos nutzbar · Lizenz ↗ · in Swift und Lua geschrieben · signiert und notarisiert · macOS 14+, Apple Silicon

Mit yabai, AeroSpace und Co. vergleichen

„Tiling war bisher nur was für Nerds. Ich wollte, dass es für alle intuitiv funktioniert – wie von Zauberhand.“

„Ich wollte einen Fenstermanager, der mit dir arbeitet — und nicht einen, dem du erst erklären musst, wie er arbeiten soll.“

— Maikel Hajiabadi, der Kopf hinter KiwiDesk
Sieh es arbeiten

Sieh zu, wie deine Fenster sich selbst aufräumen

Siebzig Sekunden KiwiDesk bei der Arbeit: fünf durcheinandergeratene Fenster in einem Schritt gekachelt, das scrollende Layout, ein Fenster auf die Space Bar gezogen, ein angepinntes Fenster, das dir folgt, und ein Profil pro macOS-Schreibtisch.

„Kleine Warnung: Du wirst absichtlich Fenster öffnen, nur um zuzusehen, wie sie an ihren Platz wandern.“

— Maikel Hajiabadi, der Kopf hinter KiwiDesk
Praxisberichte

Ausprobiert. Behalten.

100 % Saft, keine Füllstoffe.

  • KiwiDesk is my go-to window manager. The developer is responsive, friendly, and has a clear vision for the app. And yet, KiwiDesk has so many options and is so flexible that it immediately replaced the more opinionated window managers I had.

    ChristefanoCertified project manager & chess tutorGitHub
  • KiwiDesk is the best tiling window manager on the Mac, hands down! The more I use it and the more its feature set grows, the less I find myself turning to Linux.

    Jeff MooreEducational administrator and authorLinkedIn
  • This is where people should start with macOS tiling managers. While I love Rift and Amethyst — had I known this existed, I would have never needed to go through the trial and error.

    JoshEngineer & vintage restorerReddit · r/MacOS
Warum KiwiDesk

Um eine Idee herum gebaut, richtig gut gemacht

Ein flaches, eindimensionales Fenstermodell — und alles Schnelle, Skriptbare und Sichere, das daraus folgt.

Flache Arrays, keine Bäume

Jeder Space ist eine flache Fensterliste. Layouts sind reine Funktionen über dieses Array — niemals Baum-Chirurgie.

Sieben Layouts

bsp, stack, scrolling (PaperWM), monocle, grid, track und floating — ⌃⌥C schaltet durch die, die du auswählst.

KiwiVision

⌃⌥V dunkelt jedes Fenster außer dem fokussierten ab und zeichnet es weich. Linsen lassen die Apps deiner Wahl klar — jede mit eigenem Tastenkürzel und in den Profilen, die du auswählst.

KiwiHub

⌃⌥J springt per Name zu jedem Fenster, ⌃⌥K listet jedes Tastenkürzel, ⌃⌥L wechselt Layout, Profil oder KiwiVision — ein Panel, das deiner App nie den Fokus stiehlt; Tab wechselt zwischen den Seiten.

Eingerichtet von deiner KI-App

kiwidesk mcp stellt die Befehle von KiwiDesk für Claude Desktop, Claude Code, Cursor oder Codex bereit. Beschreib das Setup, das du willst; die meisten Änderungen bleiben vorläufig, bis du sagst, dass sie bleiben sollen.

Native macOS-Schreibtische

Schick ein Fenster auf Schreibtisch 3, wechsle dorthin, oder binde ein Profil an einen Schreibtisch, sodass er seine eigenen Spaces mitbringt.

Kein SIP deaktivieren

Keine Kernel-Erweiterung. Tastenkürzel laufen über Carbon, die Hyper-Taste ebenso — umbelegt mit hidutil, nie über einen Event-Tap. Keine Input-Monitoring-Berechtigung, kein Keylogger.

Übersteht macOS-Updates

Private OS-Symbole werden zur Laufzeit aufgelöst, jeder Tiling-Pfad hat einen Fallback auf die öffentliche Bedienungshilfen-API — ein Update kann einen schnellen Pfad höchstens ausbremsen, das Tiling hört nie auf.

Native Tabs bleiben

Tabs in Finder, Safari oder Terminal wechseln oder verbinden: Dein Layout bleibt. Für einen Fenstermanager ist jeder macOS-Tab ein eigenes Fenster — daran scheitert Tiling sonst.

Sticky-Fenster

Ein Sticky-Fenster folgt dir über alle Spaces — oder bleibt auf dem einen Bildschirm, auf dem es lebt. Markierung und Space-Bar-Abzeichen zeigen dir, welche.

Lua-Konfiguration

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.

CLI + Socket-IPC

Skripte alles. Streame Events über einen Socket an SketchyBar, JankyBorders oder deine eigenen Tools.

VoiceOver und Tastatur

Unter VoiceOver nennt jedes Bedienelement Namen und Wert, und die Einstellungen lassen sich komplett über die Tastatur bedienen — mit macOS-Tastaturnavigation.

Flüssige Animationen

Ein Display-Link pro Bildschirm, sodass gemischte 60-/120-Hz-Setups jeweils in ihrer eigenen nativen Taktung animieren.

Die sieben Layouts

Jedes nur einen Tastendruck entfernt

Jedes Layout ist eine reine Funktion über dasselbe flache Array — das Umschalten klappt also sofort und vorhersehbar.

BSP

Binäre Raumaufteilung: Jedes neue Fenster halbiert einen Bereich.

Stack

Ein Master-Bereich neben einer Stack-Spalte.

Scrolling

Scrollende Niri- / PaperWM-Spalten oder -Zeilen.

Monocle

Fokussiertes Fenster maximiert, der Rest dahinter.

Grid

Dynamische oder feste Zeilen × Spalten.

Track

Spalten oder Zeilen; jedes Resize hat genau ein Ziel.

Floating

Der macOS-Standard, unangetastet gelassen.

Konfiguration

Skripte es in Lua

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.

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)
Kommandozeile

Steuere es vom Terminal aus

Jede Aktion ist ein Befehl. Binde sie an Tasten, skripte sie, streame Live-Events über einen Unix-Socket in SketchyBar, JankyBorders oder deine eigenen Tools — oder lass deine KI-App dieselben Befehle über kiwidesk mcp steuern.

„Als mein Fenstermanager skriptbar wurde, fing mein Desktop an, sich selbst zu verwalten. Seitdem habe ich kein einziges Fenster mehr verschoben.“

— Maikel, der den Kiwis beigebracht hat, hinter sich aufzuräumen
zsh — kiwidesk
$ kiwidesk set_mode monocle
$ kiwidesk focus left
$ kiwidesk get_state
# Live-Events streamen (für SketchyBar, eigene Tools…)
$ kiwidesk subscribe space_change

„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.“

Schnellstart

KiwiDesk installieren

Lieber ein Paketmanager? Ein Befehl, und die kiwidesk-CLI landet in deinem PATH. So oder so hält sich KiwiDesk ab dann selbst aktuell.

Zur Doku

Das signierte, notarisierte Image ist dieselbe App — installierst du sie so, verlinkst du die kiwidesk-CLI danach selbst in deinen PATH, wie es die CLI-Doku beschreibt.

zsh — install
$ brew install --cask kiwicanopy/tap/kiwidesk
# die kiwidesk-CLI landet in deinem PATH
Jetzt herunterladen

Kostenlos nutzbar · Lizenz ↗ · in Swift und Lua geschrieben · signiert und notarisiert · macOS 14+, Apple Silicon

Oder aus dem Quellcode bauen
zsh — build
$ git clone https://github.com/KiwiCanopy/KiwiDesk.git
$ cd KiwiDesk
$ swift build -c release
# für Mitwirkende — Homebrew ist der einfache Weg
Bereit, wenn du es bist

Gönn deinem Bildschirm etwas Ruhe

Lade KiwiDesk herunter oder installiere es mit Homebrew — beides ist derselbe signierte Build, und er hält sich ab dann selbst aktuell.

Kostenlos nutzbar · Lizenz ↗ · in Swift und Lua geschrieben · signiert und notarisiert · macOS 14+, Apple Silicon

Der Quellcode von KiwiDesk ist öffentlich — mit einem Stern auf GitHub hilfst du anderen, es zu finden.

„Die Leute sagen immer, "an apple a day" — aber die Kiwi hat mehr Vitamine und größere Pläne... 🥝“