Concepts
cmux organise vos terminaux selon une hiérarchie à quatre niveaux. Comprendre ces niveaux aide lors de l'utilisation de l'API socket, du CLI et des raccourcis clavier.
Hiérarchie
Window
└── Workspace (sidebar entry)
└── Pane (split region)
└── Surface (tab within pane)
└── Panel (terminal or browser content)Fenêtre
Une fenêtre macOS. Ouvrez plusieurs fenêtres avec ⌘⇧N. Chaque fenêtre a sa propre barre latérale avec des espaces de travail indépendants.
Espace de travail
Une entrée dans la barre latérale. Chaque espace de travail contient un ou plusieurs panneaux divisés. Les espaces de travail sont ce que vous voyez listé dans la barre latérale gauche.
Dans l'interface et les raccourcis clavier, les espaces de travail sont souvent appelés « onglets » car ils se comportent comme des onglets dans la barre latérale. L'API socket et les variables d'environnement utilisent le terme « workspace ».
| Contexte | Terme utilisé |
|---|---|
| Interface de la barre latérale | Onglet |
| Raccourcis clavier | Workspace ou onglet |
| API socket | workspace |
| Variable d'environnement | CMUX_WORKSPACE_ID |
Raccourcis : ⌘N (nouveau), ⌘1–⌘9 (aller à), ⌘⇧W (fermer), ⌃⌘[ / ⌃⌘] (précédent/suivant)
Panneau
Une région divisée dans un espace de travail. Créée en divisant avec ⌘D (droite) ou ⌘⇧D (bas). Naviguez entre les panneaux avec ⌥⌘ + touches fléchées.
Chaque panneau peut contenir plusieurs surfaces (onglets dans le panneau).
Surface
Un onglet dans un panneau. Chaque panneau a sa propre barre d'onglets et peut contenir plusieurs surfaces. Créée avec ⌘T, navigation avec ⌘[ / ⌘] ou ⌃1–⌃9.
Les surfaces sont les sessions individuelles de terminal ou de navigateur avec lesquelles vous interagissez. Chaque surface a sa propre variable d'environnement CMUX_SURFACE_ID.
Panel
Le contenu à l'intérieur d'une surface. Actuellement deux types :
- Terminal : une session terminal Ghostty
- Navigateur : une vue web intégrée
Panel est principalement un concept interne. Dans l'API socket et le CLI, vous interagissez avec les surfaces plutôt qu'avec les panels directement.
Exemple visuel
┌──────────────────────────────────────────────────────┐
│ ┌──────────┐ ┌─────────────────────────────────────┐ │
│ │ Sidebar │ │ Workspace "dev" │ │
│ │ │ │ │ │
│ │ │ │ ┌───────────────┬─────────────────┐ │ │
│ │ > dev │ │ │ Pane 1 │ Pane 2 │ │ │
│ │ server │ │ │ [S1] [S2] │ [S1] │ │ │
│ │ logs │ │ │ │ │ │ │
│ │ │ │ │ Terminal │ Terminal │ │ │
│ │ │ │ │ │ │ │ │
│ │ │ │ └───────────────┴─────────────────┘ │ │
│ └──────────┘ └─────────────────────────────────────┘ │
└──────────────────────────────────────────────────────┘Dans cet exemple :
- La fenêtre contient une barre latérale avec trois espaces de travail (dev, server, logs)
- L'espace de travail « dev » est sélectionné, montrant deux panneaux côte à côte
- Le panneau 1 a deux surfaces ([S1] et [S2] dans la barre d'onglets), S1 étant actif
- Le panneau 2 a une surface
- Chaque surface contient un panel (un terminal dans ce cas)
Résumé
| Niveau | Description | Créé par | Identifié par |
|---|---|---|---|
| Fenêtre | Fenêtre macOS | ⌘⇧N | — |
| Espace de travail | Entrée de la barre latérale | ⌘N | CMUX_WORKSPACE_ID |
| Panneau | Région divisée | ⌘D / ⌘⇧D | ID du panneau (API socket) |
| Surface | Onglet dans un panneau | ⌘T | CMUX_SURFACE_ID |
| Panel | Terminal ou navigateur | Automatique | ID du panel (interne) |