Conceptos

cmux organiza sus terminales en una jerarquía de cuatro niveles. Comprender estos niveles ayuda al usar la API de socket, la CLI y los atajos de teclado.

Jerarquía

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

Ventana

Una ventana de macOS. Abra múltiples ventanas con ⌘⇧N. Cada ventana tiene su propia barra lateral con workspaces independientes.

Workspace

Una entrada en la barra lateral. Cada workspace contiene uno o más paneles divididos. Los workspaces son lo que ve listado en la barra lateral izquierda.

En la interfaz y los atajos de teclado, los workspaces a menudo se llaman "pestañas" ya que se comportan como pestañas en la barra lateral. La API de socket y las variables de entorno usan el término "workspace".

ContextoTérmino utilizado
UI de barra lateralPestaña
Atajos de tecladoWorkspace o pestaña
API de socketworkspace
Variable de entornoCMUX_WORKSPACE_ID

Atajos: ⌘N (nuevo), ⌘1–⌘9 (saltar), ⌘⇧W (cerrar), ⌃⌘[ / ⌃⌘] (anterior/siguiente)

Panel

Una región dividida dentro de un workspace. Se crea dividiendo con ⌘D (derecha) o ⌘⇧D (abajo). Navegue entre paneles con ⌥⌘ + teclas de flecha.

Cada panel puede contener múltiples superficies (pestañas dentro del panel).

Superficie

Una pestaña dentro de un panel. Cada panel tiene su propia barra de pestañas y puede contener múltiples superficies. Se crea con ⌘T, se navega con ⌘[ / ⌘] o ⌃1–⌃9.

Las superficies son las sesiones individuales de terminal o navegador con las que interactúa. Cada superficie tiene su propia variable de entorno CMUX_SURFACE_ID.

Panel

El contenido dentro de una superficie. Actualmente dos tipos:

  • Terminal: una sesión de terminal Ghostty
  • Navegador: una vista web integrada

Panel es principalmente un concepto interno. En la API de socket y la CLI, interactúa con superficies en lugar de directamente con paneles.

Ejemplo visual

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

En este ejemplo:

  • La ventana contiene una barra lateral con tres workspaces (dev, server, logs)
  • El workspace "dev" está seleccionado, mostrando dos paneles lado a lado
  • El panel 1 tiene dos superficies ([S1] y [S2] en la barra de pestañas), con S1 activa
  • El panel 2 tiene una superficie
  • Cada superficie contiene un panel (una terminal en este caso)

Resumen

NivelQué esCreado porIdentificado por
VentanaVentana de macOS⌘⇧N
WorkspaceEntrada en la barra lateral⌘NCMUX_WORKSPACE_ID
PanelRegión dividida⌘D / ⌘⇧DID de panel (API de socket)
SuperficiePestaña dentro del panel⌘TCMUX_SURFACE_ID
PanelTerminal o navegadorAutomáticoID de panel (interno)