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

ContexteTerme utilisé
Interface de la barre latéraleOnglet
Raccourcis clavierWorkspace ou onglet
API socketworkspace
Variable d'environnementCMUX_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é

NiveauDescriptionCréé parIdentifié par
FenêtreFenêtre macOS⌘⇧N
Espace de travailEntrée de la barre latérale⌘NCMUX_WORKSPACE_ID
PanneauRégion divisée⌘D / ⌘⇧DID du panneau (API socket)
SurfaceOnglet dans un panneau⌘TCMUX_SURFACE_ID
PanelTerminal ou navigateurAutomatiqueID du panel (interne)