# 核心概念

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 API | `workspace` |
| 环境变量 | `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 交互。

## 工作区分组

将相关的工作区归入侧边栏中可折叠的命名分组。每个分组由一个锚点工作区拥有，并且可以被固定、重命名，以及设置自己的图标和颜色。可以直接从分组的标题栏在分组内创建新的工作区。

[阅读完整的工作区分组指南](https://cmux.com/zh-CN/docs/workspace-groups)

## 示例图解

```
┌──────────────────────────────────────────────────────┐
│ ┌──────────┐ ┌─────────────────────────────────────┐ │
│ │ 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） | 侧边栏条目 | `⌘N` | `CMUX_WORKSPACE_ID` |
| 面板（Pane） | 分屏区域 | `⌘D` / `⌘⇧D` | Pane ID（socket API） |
| Surface | 面板内的标签页 | `⌘T` | `CMUX_SURFACE_ID` |
| Panel | 终端或浏览器 | 自动 | Panel ID（内部） |

Canonical: https://cmux.com/zh-CN/docs/concepts

Documentation index: https://cmux.com/llms.txt
