Koncepti
cmux organizuje vaše terminale u hijerarhiju od četiri nivoa. Razumijevanje ovih nivoa pomaže pri korištenju socket API-ja, CLI-ja i prečica na tastaturi.
Hijerarhija
Window
└── Workspace (sidebar entry)
└── Pane (split region)
└── Surface (tab within pane)
└── Panel (terminal or browser content)Prozor
macOS prozor. Otvorite više prozora sa ⌘⇧N. Svaki prozor ima svoju bočnu traku sa nezavisnim radnim prostorima.
Radni prostor
Stavka u bočnoj traci. Svaki radni prostor sadrži jedan ili više podijeljenih panela. Radni prostori su ono što vidite u lijevoj bočnoj traci.
U korisničkom interfejsu i prečicama na tastaturi, radni prostori se često nazivaju "tabovi" jer se ponašaju kao tabovi u bočnoj traci. Socket API i varijable okruženja koriste termin "workspace".
| Kontekst | Korišteni termin |
|---|---|
| Korisnički interfejs bočne trake | Tab |
| Prečice na tastaturi | Radni prostor ili tab |
| Socket API | workspace |
| Varijabla okruženja | CMUX_WORKSPACE_ID |
Prečice: ⌘N (novi), ⌘1–⌘9 (skok), ⌘⇧W (zatvori), ⌃⌘[ / ⌃⌘] (prethodni/sljedeći)
Panel
Podijeljena regija unutar radnog prostora. Kreira se dijeljenjem sa ⌘D (desno) ili ⌘⇧D (dolje). Navigirajte između panela sa ⌥⌘ + strelice.
Svaki panel može sadržavati više površina (tabova unutar panela).
Površina
Tab unutar panela. Svaki panel ima svoju traku tabova i može sadržavati više površina. Kreira se sa ⌘T, navigira sa ⌘[ / ⌘] ili ⌃1–⌃9.
Površine su individualne terminalne ili pregledničke sesije sa kojima interagujete. Svaka površina ima svoju CMUX_SURFACE_ID varijablu okruženja.
Panel
Sadržaj unutar površine. Trenutno dva tipa:
- Terminal: Ghostty terminalna sesija
- Preglednik: ugrađeni web prikaz
Panel je uglavnom interni koncept. U socket API-ju i CLI-ju, interagujete sa površinama, a ne direktno sa panelima.
Vizualni primjer
┌──────────────────────────────────────────────────────┐
│ ┌──────────┐ ┌─────────────────────────────────────┐ │
│ │ Sidebar │ │ Workspace "dev" │ │
│ │ │ │ │ │
│ │ │ │ ┌───────────────┬─────────────────┐ │ │
│ │ > dev │ │ │ Pane 1 │ Pane 2 │ │ │
│ │ server │ │ │ [S1] [S2] │ [S1] │ │ │
│ │ logs │ │ │ │ │ │ │
│ │ │ │ │ Terminal │ Terminal │ │ │
│ │ │ │ │ │ │ │ │
│ │ │ │ └───────────────┴─────────────────┘ │ │
│ └──────────┘ └─────────────────────────────────────┘ │
└──────────────────────────────────────────────────────┘U ovom primjeru:
- Prozor sadrži bočnu traku sa tri radna prostora (dev, server, logs)
- Radni prostor "dev" je odabran, prikazuje dva panela jedan pored drugog
- Panel 1 ima dvije površine ([S1] i [S2] u traci tabova), sa aktivnom S1
- Panel 2 ima jednu površinu
- Svaka površina sadrži panel (terminal u ovom slučaju)
Sažetak
| Nivo | Šta je | Kreiran sa | Identifikovan sa |
|---|---|---|---|
| Prozor | macOS prozor | ⌘⇧N | — |
| Radni prostor | Stavka u bočnoj traci | ⌘N | CMUX_WORKSPACE_ID |
| Panel | Podijeljena regija | ⌘D / ⌘⇧D | ID panela (socket API) |
| Površina | Tab unutar panela | ⌘T | CMUX_SURFACE_ID |
| Panel | Terminal ili preglednik | Automatski | ID panela (interno) |