개념

cmux는 터미널을 4단계 계층 구조로 구성합니다. 이 단계를 이해하면 소켓 API, CLI, 키보드 단축키를 사용할 때 도움이 됩니다.

계층 구조

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

macOS 창. ⌘⇧N으로 여러 창을 엽니다. 각 창에는 독립적인 워크스페이스가 있는 자체 사이드바가 있습니다.

워크스페이스

사이드바 항목. 각 워크스페이스에는 하나 이상의 분할 패널이 포함됩니다. 워크스페이스는 왼쪽 사이드바에 나열된 항목입니다.

UI와 키보드 단축키에서 워크스페이스는 사이드바의 탭처럼 동작하므로 "탭"이라고 불리기도 합니다. 소켓 API와 환경 변수에서는 "workspace"라는 용어를 사용합니다.

컨텍스트사용되는 용어
사이드바 UI
키보드 단축키워크스페이스 또는 탭
소켓 APIworkspace
환경 변수CMUX_WORKSPACE_ID

단축키: ⌘N (새로 만들기), ⌘1–⌘9 (이동), ⌘⇧W (닫기), ⌘⇧[ / ⌘⇧] (이전/다음)

패널

워크스페이스 내의 분할 영역. ⌘D (오른쪽) 또는 ⌘⇧D (아래)로 분할하여 생성합니다. ⌥⌘ + 방향키로 패널 간 이동합니다.

각 패널은 여러 서피스(패널 내의 탭)를 포함할 수 있습니다.

서피스

패널 내의 탭. 각 패널에는 자체 탭 바가 있으며 여러 서피스를 포함할 수 있습니다. ⌘T로 생성하고, ⌘[ / ⌘] 또는 ⌃1–⌃9로 탐색합니다.

서피스는 상호작용하는 개별 터미널 또는 브라우저 세션입니다. 각 서피스에는 고유한 CMUX_SURFACE_ID 환경 변수가 있습니다.

패널

서피스 내부의 콘텐츠. 현재 두 가지 유형이 있습니다:

  • 터미널: Ghostty 터미널 세션
  • 브라우저: 내장 웹 뷰

패널은 주로 내부 개념입니다. 소켓 API와 CLI에서는 패널이 아닌 서피스와 상호작용합니다.

시각적 예시

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

이 예시에서:

  • 창에는 세 개의 워크스페이스(dev, server, logs)가 있는 사이드바가 포함됩니다
  • 워크스페이스 "dev"가 선택되어 두 개의 패널이 나란히 표시됩니다
  • 패널 1에는 두 개의 서피스(탭 바의 [S1]과 [S2])가 있으며, S1이 활성 상태입니다
  • 패널 2에는 하나의 서피스가 있습니다
  • 각 서피스에는 패널(이 경우 터미널)이 포함됩니다

요약

단계설명생성 방법식별 방법
macOS 창⌘⇧N
워크스페이스사이드바 항목⌘NCMUX_WORKSPACE_ID
패널분할 영역⌘D / ⌘⇧D패널 ID (소켓 API)
서피스패널 내의 탭⌘TCMUX_SURFACE_ID
패널터미널 또는 브라우저자동패널 ID (내부)