核心概念

cmux 以四层层级结构组织你的终端。理解这些层级有助于使用 socket API、CLI 和快捷键。

层级结构

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

窗口(Window)

一个 macOS 窗口。使用 ⌘⇧N 打开多个窗口。每个窗口有独立的侧边栏和独立的工作区。

工作区(Workspace)

侧边栏中的一个条目。每个工作区包含一个或多个分屏面板。工作区就是你在左侧侧边栏中看到的条目。

在 UI 和快捷键中,工作区通常被称为「标签页」,因为它们的行为类似侧边栏中的标签页。Socket API 和环境变量使用「workspace」这个术语。

上下文使用的术语
侧边栏 UI标签页
快捷键工作区或标签页
Socket APIworkspace
环境变量CMUX_WORKSPACE_ID

快捷键:⌘N(新建)、⌘1–⌘9(跳转)、⌘⇧W(关闭)、⌃⌘[ / ⌃⌘](上一个/下一个)

面板(Pane)

工作区内的一个分屏区域。通过 ⌘D(向右)或 ⌘⇧D(向下)创建分屏。使用 ⌥⌘ + 方向键在面板间导航。

每个面板可以包含多个 surface(面板内的标签页)。

Surface

面板内的一个标签页。每个面板有自己的标签栏,可以包含多个 surface。使用 ⌘T 创建,使用 ⌘[ / ⌘] 或 ⌃1–⌃9 导航。

Surface 是你直接交互的终端或浏览器会话。每个 surface 有自己的 CMUX_SURFACE_ID 环境变量。

Panel

Surface 内部的内容。目前有两种类型:

  • 终端:一个 Ghostty 终端会话
  • 浏览器:一个内嵌的 web 视图

Panel 主要是内部概念。在 socket API 和 CLI 中,你与 surface 交互,而不是直接与 panel 交互。

示例图解

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

在这个示例中:

  • 窗口包含一个带有三个工作区(dev、server、logs)的侧边栏
  • 工作区「dev」被选中,显示两个并排的面板
  • 面板 1 有两个 surface(标签栏中的 [S1] 和 [S2]),S1 处于激活状态
  • 面板 2 有一个 surface
  • 每个 surface 包含一个 panel(在本例中是终端)

总结

层级描述创建方式标识方式
窗口(Window)macOS 窗口⌘⇧N
工作区(Workspace)侧边栏条目⌘NCMUX_WORKSPACE_ID
面板(Pane)分屏区域⌘D / ⌘⇧DPane ID(socket API)
Surface面板内的标签页⌘TCMUX_SURFACE_ID
Panel终端或浏览器自动Panel ID(内部)