Conceitos

O cmux organiza seus terminais em uma hierarquia de quatro níveis. Entender esses níveis ajuda ao usar a API de socket, CLI e atalhos de teclado.

Hierarquia

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

Janela

Uma janela do macOS. Abra múltiplas janelas com ⌘⇧N. Cada janela tem sua própria barra lateral com workspaces independentes.

Workspace

Uma entrada na barra lateral. Cada workspace contém um ou mais painéis divididos. Workspaces são o que você vê listado na barra lateral esquerda.

Na interface e nos atalhos de teclado, workspaces são frequentemente chamados de "abas" já que se comportam como abas na barra lateral. A API de socket e variáveis de ambiente usam o termo "workspace".

ContextoTermo usado
Interface da barra lateralAba
Atalhos de tecladoWorkspace ou aba
API de socketworkspace
Variável de ambienteCMUX_WORKSPACE_ID

Atalhos: ⌘N (novo), ⌘1–⌘9 (pular), ⌘⇧W (fechar), ⌃⌘[ / ⌃⌘] (anterior/próximo)

Painel

Uma região dividida dentro de um workspace. Criado dividindo com ⌘D (direita) ou ⌘⇧D (baixo). Navegue entre painéis com ⌥⌘ + teclas de seta.

Cada painel pode conter múltiplas superfícies (abas dentro do painel).

Superfície

Uma aba dentro de um painel. Cada painel tem sua própria barra de abas e pode conter múltiplas superfícies. Criada com ⌘T, navegada com ⌘[ / ⌘] ou ⌃1–⌃9.

Superfícies são as sessões individuais de terminal ou navegador com as quais você interage. Cada superfície tem sua própria variável de ambiente CMUX_SURFACE_ID.

Panel

O conteúdo dentro de uma superfície. Atualmente dois tipos:

  • Terminal: uma sessão de terminal Ghostty
  • Navegador: uma visualização web integrada

Panel é majoritariamente um conceito interno. Na API de socket e CLI, você interage com superfícies em vez de panels diretamente.

Exemplo visual

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

Neste exemplo:

  • A janela contém uma barra lateral com três workspaces (dev, server, logs)
  • O workspace "dev" está selecionado, mostrando dois painéis lado a lado
  • O Painel 1 tem duas superfícies ([S1] e [S2] na barra de abas), com S1 ativa
  • O Painel 2 tem uma superfície
  • Cada superfície contém um panel (um terminal neste caso)

Resumo

NívelO que éCriado porIdentificado por
JanelaJanela do macOS⌘⇧N
WorkspaceEntrada na barra lateral⌘NCMUX_WORKSPACE_ID
PainelRegião dividida⌘D / ⌘⇧DID do painel (API de socket)
SuperfícieAba dentro do painel⌘TCMUX_SURFACE_ID
PanelTerminal ou navegadorAutomáticoID do panel (interno)