概念

cmux 以四層層級結構組織你的終端機。了解這些層級有助於使用 socket API、CLI 和鍵盤快捷鍵。

層級結構

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

視窗

一個 macOS 視窗。使用 ⌘⇧N 開啟多個視窗。每個視窗都有自己的側邊欄和獨立的工作區。

工作區

側邊欄中的項目。每個工作區包含一個或多個分割窗格。工作區就是你在左側側邊欄中看到的列表。

在 UI 和鍵盤快捷鍵中,工作區通常被稱為「分頁」,因為它們在側邊欄中的行為類似分頁。Socket API 和環境變數使用「workspace」這個術語。

情境使用的術語
側邊欄 UI分頁
鍵盤快捷鍵工作區或分頁
Socket APIworkspace
環境變數CMUX_WORKSPACE_ID

快捷鍵:⌘N(新增)、⌘1–⌘9(跳轉)、⌘⇧W(關閉)、⌘⇧[ / ⌘⇧](上一個/下一個)

窗格

工作區內的分割區域。使用 ⌘D(右)或 ⌘⇧D(下)來分割建立。使用 ⌥⌘ + 方向鍵在窗格之間導覽。

每個窗格可以包含多個 surface(窗格內的分頁)。

Surface

窗格內的分頁。每個窗格都有自己的分頁列,可以包含多個 surface。使用 ⌘T 建立,使用 ⌘[ / ⌘] 或 ⌃1–⌃9 導覽。

Surface 是你互動的個別終端機或瀏覽器工作階段。每個 surface 都有自己的 CMUX_SURFACE_ID 環境變數。

面板

Surface 內的內容。目前有兩種類型:

  • 終端機:Ghostty 終端機工作階段
  • 瀏覽器:內嵌的網頁檢視

面板主要是內部概念。在 socket API 和 CLI 中,你是與 surface 互動,而非直接與面板互動。

視覺範例

┌──────────────────────────────────────────────────────┐
│ ┌──────────┐ ┌─────────────────────────────────────┐ │
│ │ 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 包含一個面板(此例中為終端機)

摘要

層級說明建立方式識別方式
視窗macOS 視窗⌘⇧N
工作區側邊欄項目⌘NCMUX_WORKSPACE_ID
窗格分割區域⌘D / ⌘⇧D窗格 ID(socket API)
Surface窗格內的分頁⌘TCMUX_SURFACE_ID
面板終端機或瀏覽器自動面板 ID(內部)