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".

KontekstKorišteni termin
Korisnički interfejs bočne trakeTab
Prečice na tastaturiRadni prostor ili tab
Socket APIworkspace
Varijabla okruženjaCMUX_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 jeKreiran saIdentifikovan sa
ProzormacOS prozor⌘⇧N
Radni prostorStavka u bočnoj traci⌘NCMUX_WORKSPACE_ID
PanelPodijeljena regija⌘D / ⌘⇧DID panela (socket API)
PovršinaTab unutar panela⌘TCMUX_SURFACE_ID
PanelTerminal ili preglednikAutomatskiID panela (interno)