Ein Layout ist die Regel, nach der Kachelwerk die vorhandene Fläche auf die vorhandenen Fenster verteilt. Alle sieben sind reine Funktionen ohne gespeicherten Zustand: Sie bekommen die Liste der Fenster und die Fläche und berechnen die Anordnung bei jedem Durchlauf neu. Deshalb driftet nichts, wenn ein Fenster den Bildschirm wechselt.
Umschalten geht jederzeit über Menüleiste → Layout, mit SUPER CTRL +
Zahl oder mit einem eigenen Kürzel:
bind = SUPER, L, layoutmsg, master
Übersicht
| Layout | Prinzip | Typische Option |
|---|---|---|
| dwindle (Standard) | Jedes neue Fenster halbiert den aktuellen Bereich abwechselnd waagerecht und senkrecht – ein binärer Baum | preserve_split = true |
| master | Ein großes Hauptfenster, alle weiteren als Stapel daneben | new_status = master |
| master-left | Wie master, das Hauptfenster steht fest links | mfact = 0.6 |
| master-right | Wie master, das Hauptfenster steht fest rechts | mfact = 0.6 |
| centered | Ein großes Fenster in der Mitte, die übrigen abwechselnd rechts und links | always_center_master = true |
| scrolling | Endloses waagerechtes Band von Spalten nach dem PaperWM-Prinzip | fullscreen_on_one_column = true |
| grid | Gleich große Zellen, zeilenweise gefüllt | — |
Jeder Bildschirm wird eigenständig gekachelt – mit eigenem Hauptfenster und, wenn gewünscht, mit einem eigenen Layout (Layout je Bildschirm).
Nummern und Tastenkürzel
Die Layouts sind im Menü durchnummeriert. SUPER CTRL + Zahl wechselt
direkt auf das Layout mit dieser Nummer – in beiden Profilen.
| Nr. | Layout | Kürzel, wenn SUPER = ⌥ |
|---|---|---|
| 1 | dwindle | ⌃⌥1 |
| 2 | master | ⌃⌥2 |
| 3 | master-left | ⌃⌥3 |
| 4 | master-right | ⌃⌥4 |
| 5 | centered | ⌃⌥5 |
| 6 | scrolling | ⌃⌥6 |
| 7 | grid | ⌃⌥7 |
SUPER + Zahl allein gehört den Arbeitsflächen. Hat der Bildschirm des
fokussierten Fensters ein eigenes Layout, ändert das Kürzel dieses, sonst das
Standard-Layout.
🧱 dwindle — der Standard
Jedes neue Fenster halbiert den Bereich des Fensters, neben dem es landet: abwechselnd waagerecht und senkrecht, immer entlang der längeren Kante. Was entsteht, ist ein binärer Baum.
1 Fenster 2 Fenster 3 Fenster 4 Fenster
┌─────────┐ ┌────┬────┐ ┌────┬────┐ ┌────┬────┐
│ │ │ │ │ │ │ 2 │ │ │ 2 │
│ 1 │ │ 1 │ 2 │ │ 1 ├────┤ │ 1 ├─┬──┤
│ │ │ │ │ │ │ 3 │ │ │3│4 │
└─────────┘ └────┴────┘ └────┴────┘ └────┴─┴──┘
| Option | Werte | Bedeutung |
|---|---|---|
preserve_split | true / false | Teilungsrichtung starr an die Baumtiefe binden statt aus dem Seitenverhältnis zu bestimmen |
split_bias | Zahl | Verschiebt die Teilung aus der Mitte |
Zur Option preserve_split: Standardmäßig entscheidet Kachelwerk die
Teilungsrichtung bei jedem Durchlauf neu aus dem Seitenverhältnis der Fläche.
Mit preserve_split = true wechselt sie stattdessen starr mit der Baumtiefe.
Eine von Hand aufgebaute Anordnung bleibt dadurch auch dann erhalten, wenn ein
Fenster in der Größe verändert oder der Bildschirm gewechselt wird – der Preis
sind bei tiefen Bäumen sehr schmale Kacheln.
🎯 master — ein großes, der Rest daneben
┌───────────┬─────┐
│ │ 2 │
│ 1 ├─────┤
│ (Master) │ 3 │
│ ├─────┤
│ │ 4 │
└───────────┴─────┘
| Option | Werte | Bedeutung |
|---|---|---|
new_status | master | Ein neues Fenster wird zum Hauptfenster, das alte rutscht in den Stapel |
slave | Es wird hinten an den Stapel gehängt (Standard) | |
inherit | Es übernimmt die Rolle des gerade fokussierten Fensters | |
mfact | 0.1 – 0.9 | Anteil des Hauptbereichs an der Gesamtbreite |
orientation | left / top | Hauptfenster links oder oben |
pinned | true / false | Hauptfenster fixieren: ein neues Fenster übernimmt den Platz nicht |
Ein Fenster nachträglich zum Hauptfenster machen: SUPER SHIFT + Return.
Dauerhaft für eine bestimmte App:
windowrule = master, iTerm2
◧ master-left und master-right — die Seite steht fest
Das Hauptfenster als volle Spalte auf einer festen Seite, alle übrigen
übereinander auf der anderen. Anders als beim gewöhnlichen master hängt die
Seite nicht an orientation – die beiden Layouts lassen sich direkt umschalten.
master-left master-right
┌───────────┬─────┐ ┌─────┬───────────┐
│ │ 2 │ │ 2 │ │
│ 1 ├─────┤ ├─────┤ 1 │
│ (Master) │ 3 │ │ 3 │ (Master) │
│ ├─────┤ ├─────┤ │
│ │ 4 │ │ 4 │ │
└───────────┴─────┘ └─────┴───────────┘
| Option | Werte | Bedeutung |
|---|---|---|
mfact | 0.1 – 0.9 | Anteil des Hauptfensters – auf beiden Seiten gleich gemeint |
new_status, pinned | wie bei master | gelten unverändert |
🎪 centered — das Hauptfenster in der Mitte
Das große Fenster steht mittig, alle weiteren wandern abwechselnd nach rechts und nach links. So bleiben die beiden Seitenspalten bei jeder Fensterzahl ausgeglichen.
┌──────┬─────────────┬──────┐
│ 3 │ │ 2 │
├──────┤ 1 ├──────┤
│ 5 │ (Master) │ 4 │
└──────┴─────────────┴──────┘
| Option | Werte | Bedeutung |
|---|---|---|
always_center_master | true / false | Bei nur zwei Fenstern trotzdem mittig bleiben |
Bei nur zwei Fenstern fällt das Layout auf das gewöhnliche master-Verhalten
zurück, statt eine leere Spalte zu zeigen – es sei denn,
always_center_master = true ist gesetzt.
🌊 scrolling — ein endloses Band
Das PaperWM-Prinzip: ein endloses waagerechtes Band von Spalten. Die Spalten ändern ihre Breite nie – stattdessen scrollt das Band, sodass die fokussierte Spalte im Blick bleibt.
← Sichtbarer Bildschirm →
┌ ─ ─ ┬─────────┬─────────┬ ─ ─ ┐
│ 1 │ 2 │ 3 │ 4 │ Fokus auf 2 und 3
└ ─ ─ ┴─────────┴─────────┴ ─ ─ ┘
↑ ↑
links raus rechts raus
gescrollt gescrollt
Fokus nach rechts (SUPER + →) schiebt das Band weiter. Die fokussierte
Spalte wird zentriert, solange links und rechts genug Band vorhanden ist; an
den Enden liegt das Band bündig an.
| Option | Werte | Bedeutung |
|---|---|---|
column_width | 0.2 – 1.0 | Breite einer Spalte als Anteil der Bildschirmbreite |
fullscreen_on_one_column | true / false | Eine einzelne Spalte darf den ganzen Bildschirm nutzen |
▦ grid — gleich große Zellen
Zeilenweise gefüllt, alle Zellen gleich groß. Die letzte Zeile wird über die verbleibende Breite gestreckt. Vertraut für alle, die von einem Werkzeug wie Rectangle oder Magnet kommen.
┌────┬────┐ ┌────┬────┐
│ 1 │ 2 │ │ 1 │ 2 │
├────┼────┤ ├────┴────┤
│ 3 │ 4 │ │ 3 │ ← letzte Zeile wird gestreckt
└────┴────┘ └─────────┘
Dieses Layout hat keine eigenen Optionen – nur gaps_in und gaps_out aus dem
general { }-Block wirken.