Koncepter

cmux organiserer dine terminaler i et firedelt hierarki. Forståelse af disse niveauer hjælper når du bruger socket API, CLI og tastaturgenveje.

Hierarki

Window
  └── Workspace (sidebar entry)
        └── Pane (split region)
              └── Surface (tab within pane)
                    └── Panel (terminal or browser content)

Vindue

Et macOS-vindue. Åbn flere vinduer med ⌘⇧N. Hvert vindue har sin egen sidebar med uafhængige workspaces.

Workspace

En sidebarpost. Hvert workspace indeholder ét eller flere opdelte paneler. Workspaces er det du ser listet i venstre sidebar.

I brugerfladen og tastaturgenveje kaldes workspaces ofte "faner", da de opfører sig som faner i sidebaren. Socket API og miljøvariabler bruger termen "workspace".

KontekstAnvendt term
Sidebar-brugerfladeFane
TastaturgenvejeWorkspace eller fane
Socket APIworkspace
MiljøvariabelCMUX_WORKSPACE_ID

Genveje: ⌘N (ny), ⌘1–⌘9 (spring til), ⌘⇧W (luk), ⌃⌘[ / ⌃⌘] (forrige/næste)

Panel

Et opdelt område inden for et workspace. Oprettes ved at opdele med ⌘D (højre) eller ⌘⇧D (ned). Navigér mellem paneler med ⌥⌘ + piletaster.

Hvert panel kan indeholde flere surfaces (faner inden for panelet).

Surface

En fane inden for et panel. Hvert panel har sin egen fanebjælke og kan indeholde flere surfaces. Oprettes med ⌘T, navigeres med ⌘[ / ⌘] eller ⌃1–⌃9.

Surfaces er de individuelle terminal- eller browsersessioner du interagerer med. Hver surface har sin egen CMUX_SURFACE_ID-miljøvariabel.

Panel

Indholdet inde i en surface. Aktuelt to typer:

  • Terminal: en Ghostty-terminalsession
  • Browser: en indlejret webvisning

Panel er primært et internt koncept. I socket API og CLI interagerer du med surfaces snarere end paneler direkte.

Visuelt eksempel

┌──────────────────────────────────────────────────────┐
│ ┌──────────┐ ┌─────────────────────────────────────┐ │
│ │ Sidebar  │ │ Workspace "dev"                     │ │
│ │          │ │                                     │ │
│ │          │ │ ┌───────────────┬─────────────────┐ │ │
│ │ > dev    │ │ │ Pane 1        │ Pane 2          │ │ │
│ │   server │ │ │ [S1] [S2]     │ [S1]            │ │ │
│ │   logs   │ │ │               │                 │ │ │
│ │          │ │ │  Terminal     │  Terminal       │ │ │
│ │          │ │ │               │                 │ │ │
│ │          │ │ └───────────────┴─────────────────┘ │ │
│ └──────────┘ └─────────────────────────────────────┘ │
└──────────────────────────────────────────────────────┘

I dette eksempel:

  • Vinduet indeholder en sidebar med tre workspaces (dev, server, logs)
  • Workspace "dev" er valgt og viser to paneler side om side
  • Panel 1 har to surfaces ([S1] og [S2] i fanebjælken), med S1 aktiv
  • Panel 2 har én surface
  • Hver surface indeholder et panel (en terminal i dette tilfælde)

Oversigt

NiveauHvad det erOprettet afIdentificeret ved
VinduemacOS-vindue⌘⇧N
WorkspaceSidebarpost⌘NCMUX_WORKSPACE_ID
PanelOpdelt område⌘D / ⌘⇧DPanel-ID (socket API)
SurfaceFane inden for panel⌘TCMUX_SURFACE_ID
PanelTerminal eller browserAutomatiskPanel-ID (internt)