Concetti

cmux organizza i tuoi terminali in una gerarchia a quattro livelli. Comprendere questi livelli aiuta nell'uso dell'API socket, del CLI e delle scorciatoie da tastiera.

Gerarchia

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

Finestra

Una finestra macOS. Apri più finestre con ⌘⇧N. Ogni finestra ha la propria barra laterale con workspace indipendenti.

Workspace

Una voce nella barra laterale. Ogni workspace contiene uno o più pannelli divisi. I workspace sono ciò che vedi elencato nella barra laterale sinistra.

Nell'interfaccia e nelle scorciatoie da tastiera, i workspace sono spesso chiamati "tab" poiché si comportano come tab nella barra laterale. L'API socket e le variabili d'ambiente usano il termine "workspace".

ContestoTermine usato
Interfaccia barra lateraleTab
Scorciatoie da tastieraWorkspace o tab
API socketworkspace
Variabile d'ambienteCMUX_WORKSPACE_ID

Scorciatoie: ⌘N (nuovo), ⌘1–⌘9 (vai a), ⌘⇧W (chiudi), ⌃⌘[ / ⌃⌘] (precedente/successivo)

Pannello

Una regione divisa all'interno di un workspace. Creata dividendo con ⌘D (destra) o ⌘⇧D (basso). Naviga tra i pannelli con ⌥⌘ + tasti freccia.

Ogni pannello può contenere più superfici (tab all'interno del pannello).

Superficie

Un tab all'interno di un pannello. Ogni pannello ha la propria barra dei tab e può contenere più superfici. Creata con ⌘T, navigazione con ⌘[ / ⌘] o ⌃1–⌃9.

Le superfici sono le singole sessioni di terminale o browser con cui interagisci. Ogni superficie ha la propria variabile d'ambiente CMUX_SURFACE_ID.

Panel

Il contenuto all'interno di una superficie. Attualmente due tipi:

  • Terminal: una sessione terminale Ghostty
  • Browser: una vista web integrata

Panel è principalmente un concetto interno. Nell'API socket e nel CLI, interagisci con le superfici piuttosto che con i panel direttamente.

Esempio visivo

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

In questo esempio:

  • La finestra contiene una barra laterale con tre workspace (dev, server, logs)
  • Il workspace "dev" è selezionato, mostrando due pannelli affiancati
  • Il pannello 1 ha due superfici ([S1] e [S2] nella barra dei tab), con S1 attivo
  • Il pannello 2 ha una superficie
  • Ogni superficie contiene un panel (un terminale in questo caso)

Riepilogo

LivelloDescrizioneCreato daIdentificato da
FinestraFinestra macOS⌘⇧N
WorkspaceVoce della barra laterale⌘NCMUX_WORKSPACE_ID
PannelloRegione divisa⌘D / ⌘⇧DID pannello (API socket)
SuperficieTab all'interno di un pannello⌘TCMUX_SURFACE_ID
PanelTerminale o browserAutomaticoID panel (interno)