# แนวคิด

cmux จัดระเบียบเทอร์มินัลของคุณเป็นลำดับชั้น 4 ระดับ การเข้าใจระดับเหล่านี้ช่วยเมื่อใช้ socket API, CLI และคีย์ลัด

## ลำดับชั้น

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

### หน้าต่าง

หน้าต่าง macOS เปิดหลายหน้าต่างด้วย ⌘⇧N แต่ละหน้าต่างมีแถบข้างของตัวเองพร้อม workspace อิสระ

### Workspace

รายการในแถบข้าง แต่ละ workspace มีพาเนลแยกหน้าจอหนึ่งอันหรือมากกว่า Workspace คือสิ่งที่คุณเห็นในรายการแถบข้างซ้าย

ใน UI และคีย์ลัด workspace มักถูกเรียกว่า "แท็บ" เพราะมันทำหน้าที่เหมือนแท็บในแถบข้าง Socket API และตัวแปรสภาพแวดล้อมใช้คำว่า "workspace"

| บริบท | คำที่ใช้ |
| --- | --- |
| UI แถบข้าง | แท็บ |
| คีย์ลัด | Workspace หรือแท็บ |
| Socket API | `workspace` |
| ตัวแปรสภาพแวดล้อม | `CMUX_WORKSPACE_ID` |

**คีย์ลัด: ⌘N (ใหม่), ⌘1–⌘9 (กระโดด), ⌘⇧W (ปิด), ⌃⌘\[ / ⌃⌘\] (ก่อนหน้า/ถัดไป)**

### พาเนล

พื้นที่แยกภายใน workspace สร้างโดยแยกด้วย ⌘D (ขวา) หรือ ⌘⇧D (ล่าง) นำทางระหว่างพาเนลด้วย ⌥⌘ + ปุ่มลูกศร

แต่ละพาเนลสามารถมี surface หลายอัน (แท็บภายในพาเนล)

### Surface

แท็บภายในพาเนล แต่ละพาเนลมี tab bar ของตัวเองและสามารถมี surface หลายอัน สร้างด้วย ⌘T, นำทางด้วย ⌘\[ / ⌘\] หรือ ⌃1–⌃9

Surface คือเซสชันเทอร์มินัลหรือเบราว์เซอร์ที่คุณโต้ตอบด้วย แต่ละ surface มีตัวแปรสภาพแวดล้อม CMUX\_SURFACE\_ID ของตัวเอง

### Panel

เนื้อหาภายใน surface ปัจจุบันมีสองประเภท:

-   **Terminal: เซสชันเทอร์มินัล Ghostty**
-   **Browser: embedded web view**

Panel เป็นแนวคิดภายในเป็นหลัก ใน socket API และ CLI คุณโต้ตอบกับ surface มากกว่า panel โดยตรง

## กลุ่มเวิร์กสเปซ

จัดกลุ่มเวิร์กสเปซที่เกี่ยวข้องกันให้เป็นส่วนที่มีชื่อและยุบ-ขยายได้ในแถบด้านข้าง แต่ละกลุ่มมีเวิร์กสเปซแองเคอร์เป็นเจ้าของ และสามารถปักหมุด เปลี่ยนชื่อ รวมถึงกำหนดไอคอนและสีของตัวเองได้ คุณสามารถสร้างเวิร์กสเปซใหม่ภายในกลุ่มได้โดยตรงจากส่วนหัวของกลุ่ม

[อ่านคู่มือกลุ่มเวิร์กสเปซฉบับเต็ม](https://cmux.com/th/docs/workspace-groups)

## ตัวอย่างภาพ

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

ในตัวอย่างนี้:

-   หน้าต่างมีแถบข้างที่มีสาม workspace (dev, server, logs)
-   Workspace "dev" ถูกเลือก แสดงสองพาเนลเคียงข้างกัน
-   พาเนล 1 มีสอง surface (\[S1\] และ \[S2\] ใน tab bar) โดย S1 เป็นตัวที่ใช้งานอยู่
-   พาเนล 2 มี surface หนึ่งอัน
-   แต่ละ surface มี panel (เทอร์มินัลในกรณีนี้)

## สรุป

| ระดับ | คืออะไร | สร้างโดย | ระบุโดย |
| --- | --- | --- | --- |
| หน้าต่าง | หน้าต่าง macOS | `⌘⇧N` | — |
| Workspace | รายการในแถบข้าง | `⌘N` | `CMUX_WORKSPACE_ID` |
| พาเนล | พื้นที่แยก | `⌘D` / `⌘⇧D` | Pane ID (socket API) |
| Surface | แท็บภายในพาเนล | `⌘T` | `CMUX_SURFACE_ID` |
| Panel | เทอร์มินัลหรือเบราว์เซอร์ | อัตโนมัติ | Panel ID (ภายใน) |

Canonical: https://cmux.com/th/docs/concepts

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