Konzepte
cmux organisiert Ihre Terminals in einer vierstufigen Hierarchie. Das Verständnis dieser Ebenen hilft bei der Verwendung der Socket-API, CLI und Tastaturkürzel.
Hierarchie
Window
└── Workspace (sidebar entry)
└── Pane (split region)
└── Surface (tab within pane)
└── Panel (terminal or browser content)Fenster
Ein macOS-Fenster. Öffnen Sie mehrere Fenster mit ⌘⇧N. Jedes Fenster hat seine eigene Seitenleiste mit unabhängigen Workspaces.
Workspace
Ein Eintrag in der Seitenleiste. Jeder Workspace enthält einen oder mehrere geteilte Bereiche. Workspaces sind das, was Sie in der linken Seitenleiste aufgelistet sehen.
In der Benutzeroberfläche und bei Tastaturkürzeln werden Workspaces oft als "Tabs" bezeichnet, da sie sich wie Tabs in der Seitenleiste verhalten. Die Socket-API und Umgebungsvariablen verwenden den Begriff "Workspace".
| Kontext | Verwendeter Begriff |
|---|---|
| Seitenleisten-UI | Tab |
| Tastaturkürzel | Workspace oder Tab |
| Socket-API | workspace |
| Umgebungsvariable | CMUX_WORKSPACE_ID |
Kürzel: ⌘N (Neu), ⌘1–⌘9 (Springen), ⌘⇧W (Schließen), ⌘⇧[ / ⌘⇧] (Vor/Zurück)
Bereich
Ein geteilter Bereich innerhalb eines Workspace. Erstellt durch Teilen mit ⌘D (rechts) oder ⌘⇧D (unten). Navigieren Sie zwischen Bereichen mit ⌥⌘ + Pfeiltasten.
Jeder Bereich kann mehrere Oberflächen (Tabs innerhalb des Bereichs) enthalten.
Oberfläche
Ein Tab innerhalb eines Bereichs. Jeder Bereich hat seine eigene Tab-Leiste und kann mehrere Oberflächen enthalten. Erstellt mit ⌘T, navigiert mit ⌘[ / ⌘] oder ⌃1–⌃9.
Oberflächen sind die einzelnen Terminal- oder Browser-Sitzungen, mit denen Sie interagieren. Jede Oberfläche hat ihre eigene CMUX_SURFACE_ID Umgebungsvariable.
Panel
Der Inhalt innerhalb einer Oberfläche. Derzeit zwei Typen:
- Terminal: Eine Ghostty-Terminal-Sitzung
- Browser: Eine eingebettete Webansicht
Panel ist hauptsächlich ein internes Konzept. In der Socket-API und CLI interagieren Sie mit Oberflächen statt direkt mit Panels.
Visuelles Beispiel
┌──────────────────────────────────────────────────────┐
│ ┌──────────┐ ┌─────────────────────────────────────┐ │
│ │ Sidebar │ │ Workspace "dev" │ │
│ │ │ │ │ │
│ │ │ │ ┌───────────────┬─────────────────┐ │ │
│ │ > dev │ │ │ Pane 1 │ Pane 2 │ │ │
│ │ server │ │ │ [S1] [S2] │ [S1] │ │ │
│ │ logs │ │ │ │ │ │ │
│ │ │ │ │ Terminal │ Terminal │ │ │
│ │ │ │ │ │ │ │ │
│ │ │ │ └───────────────┴─────────────────┘ │ │
│ └──────────┘ └─────────────────────────────────────┘ │
└──────────────────────────────────────────────────────┘In diesem Beispiel:
- Das Fenster enthält eine Seitenleiste mit drei Workspaces (dev, server, logs)
- Workspace "dev" ist ausgewählt und zeigt zwei Bereiche nebeneinander
- Bereich 1 hat zwei Oberflächen ([S1] und [S2] in der Tab-Leiste), wobei S1 aktiv ist
- Bereich 2 hat eine Oberfläche
- Jede Oberfläche enthält ein Panel (in diesem Fall ein Terminal)
Zusammenfassung
| Ebene | Was es ist | Erstellt durch | Identifiziert durch |
|---|---|---|---|
| Fenster | macOS-Fenster | ⌘⇧N | — |
| Workspace | Eintrag in der Seitenleiste | ⌘N | CMUX_WORKSPACE_ID |
| Bereich | Geteilter Bereich | ⌘D / ⌘⇧D | Bereichs-ID (Socket-API) |
| Oberfläche | Tab innerhalb eines Bereichs | ⌘T | CMUX_SURFACE_ID |
| Panel | Terminal oder Browser | Automatisch | Panel-ID (intern) |