Концепції
cmux організовує ваші термінали в чотирирівневу ієрархію. Розуміння цих рівнів допомагає при використанні socket API, CLI та клавіатурних скорочень.
Ієрархія
Window
└── Workspace (sidebar entry)
└── Pane (split region)
└── Surface (tab within pane)
└── Panel (terminal or browser content)Вікно
Вікно macOS. Відкривайте кілька вікон за допомогою ⌘⇧N. Кожне вікно має власну бічну панель з незалежними робочими просторами.
Робочий простір
Запис у бічній панелі. Кожен робочий простір містить одну або більше розділених панелей. Робочі простори — це те, що ви бачите в списку лівої бічної панелі.
В інтерфейсі та клавіатурних скороченнях робочі простори часто називають «вкладками», оскільки вони поводяться як вкладки в бічній панелі. Socket API та змінні середовища використовують термін «workspace».
| Контекст | Використовуваний термін |
|---|---|
| Інтерфейс бічної панелі | Вкладка |
| Клавіатурні скорочення | Робочий простір або вкладка |
| Socket API | workspace |
| Змінна середовища | CMUX_WORKSPACE_ID |
Скорочення: ⌘N (новий), ⌘1–⌘9 (перехід), ⌘⇧W (закрити), ⌃⌘[ / ⌃⌘] (попередній/наступний)
Панель
Розділена область у робочому просторі. Створюється розділенням за допомогою ⌘D (вправо) або ⌘⇧D (вниз). Переміщуйтесь між панелями за допомогою ⌥⌘ + клавіші зі стрілками.
Кожна панель може містити кілька поверхонь (вкладки всередині панелі).
Поверхня
Вкладка всередині панелі. Кожна панель має власну панель вкладок і може містити кілька поверхонь. Створюються за допомогою ⌘T, навігація через ⌘[ / ⌘] або ⌃1–⌃9.
Поверхні — це окремі термінальні або браузерні сесії, з якими ви взаємодієте. Кожна поверхня має власну змінну середовища CMUX_SURFACE_ID.
Панель вмісту
Вміст всередині поверхні. Наразі два типи:
- Термінал: термінальна сесія Ghostty
- Браузер: вбудований веб-перегляд
Панель вмісту — здебільшого внутрішня концепція. У socket 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 | — |
| Робочий простір | Запис у бічній панелі | ⌘N | CMUX_WORKSPACE_ID |
| Панель | Розділена область | ⌘D / ⌘⇧D | Pane ID (socket API) |
| Поверхня | Вкладка всередині панелі | ⌘T | CMUX_SURFACE_ID |
| Панель вмісту | Термінал або браузер | Автоматично | Panel ID (внутрішній) |