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".
| Contesto | Termine usato |
|---|---|
| Interfaccia barra laterale | Tab |
| Scorciatoie da tastiera | Workspace o tab |
| API socket | workspace |
| Variabile d'ambiente | CMUX_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
| Livello | Descrizione | Creato da | Identificato da |
|---|---|---|---|
| Finestra | Finestra macOS | ⌘⇧N | — |
| Workspace | Voce della barra laterale | ⌘N | CMUX_WORKSPACE_ID |
| Pannello | Regione divisa | ⌘D / ⌘⇧D | ID pannello (API socket) |
| Superficie | Tab all'interno di un pannello | ⌘T | CMUX_SURFACE_ID |
| Panel | Terminale o browser | Automatico | ID panel (interno) |