Layout-Vorlagen (Templates) ermöglichen es, ein Frame-Layout, inklusive der Programme, die in jedem Frame gestartet werden sollen, in einer TOML-Datei zu definieren und mit einem Befehl oder Tastenkürzel anzuwenden. Nützlich für Entwicklungs-Workspaces, Monitoring-Dashboards oder jede wiederkehrende Multi-Fenster-Anordnung.
Template-Dateien gehören in:
~/.config/morgenwm/templates/<name>.toml
setup.sh installiert die Beispiel-Templates aus example/templates/ in dieses Verzeichnis. Du kannst eigene erstellen oder die Beispiele bearbeiten.
Ein Template ist eine flache Liste von [[frame]]-Einträgen. Jeder Frame hat eine id und ist entweder ein Blatt (leaf, enthält Fenster) oder eine Aufteilung (split, enthält zwei Kind-Frames). Aufteilungen referenzieren ihre Kinder über left und right-IDs.
| Feld | Typ | Gültig für | Beschreibung |
|---|---|---|---|
| id | string | alle | Eindeutiger Bezeichner für diesen Frame |
| parent | string | alle | ID des Eltern-Splits; leer für die Wurzel |
| type | string | alle | "leaf" oder "split" |
| direction | string | splits | "horizontal" (links-rechts) oder "vertical" (oben-unten) |
| ratio | float | splits | Anteil des ersten Kindes, 0.0–1.0 (Standard 0.5) |
| left | string | splits | ID des linken/oberen Kindes |
| right | string | splits | ID des rechten/unteren Kindes |
| command | string | leaves | Shell-Befehl(e) zum Starten in diesem Frame. \| trennt mehrere Befehle im selben Frame |
| requires_filepath | bool | template | Wenn true, vor dem Erstellen des Layouts ein Arbeitsverzeichnis per fuzzel abfragen. Der Pfad ist als $MOGENWM_TEMPLATE_DIR in Befehlen verfügbar |
┌─────────────────────┐ │ │ │ Editor (foot) │ 70% │ │ ├──────────┬──────────┤ │ Terminal │ Browser │ 30% │ (htop) │ (firefox)│ └──────────┴──────────┘
# ~/.config/morgenwm/templates/dev-layout.toml [[frame]] id = "root" type = "split" direction = "vertical" ratio = 0.7 left = "editor" right = "bottom" [[frame]] id = "editor" type = "leaf" command = "foot" [[frame]] id = "bottom" type = "split" direction = "horizontal" ratio = 0.5 left = "terminal" right = "browser" [[frame]] id = "terminal" type = "leaf" command = "foot -e htop" [[frame]] id = "browser" type = "leaf" command = "firefox"
morgenwm_msg action apply-template dev-layout
In config.toml:
[[keybindings]] key = "t" modifiers = ["Mod"] action = "template:dev-layout"
Beim Anwenden eines Templates:
Blätter ohne command bleiben leer, Fenster können später manuell hineinverschoben werden.