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

KontextVerwendeter Begriff
Seitenleisten-UITab
TastaturkürzelWorkspace oder Tab
Socket-APIworkspace
UmgebungsvariableCMUX_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

EbeneWas es istErstellt durchIdentifiziert durch
FenstermacOS-Fenster⌘⇧N
WorkspaceEintrag in der Seitenleiste⌘NCMUX_WORKSPACE_ID
BereichGeteilter Bereich⌘D / ⌘⇧DBereichs-ID (Socket-API)
OberflächeTab innerhalb eines Bereichs⌘TCMUX_SURFACE_ID
PanelTerminal oder BrowserAutomatischPanel-ID (intern)