DevCentr terminal manager
Intent
A dedicated terminal manager UI for sessions that DevCentr (or Open Terminal under DevCentr orchestration) spawned. It is a first-class Open Terminal layout mode — not a relocation of DevCentr’s project browser.
Recommended mode name: project-grouped manager (projectGroupedManager).
Leave the grid-based project browser inside DevCentr. Do not move the project grid into the terminal manager.
Layout mode
| Mode | Summary |
|---|---|
Standalone |
Classic Terminal-like; tabs top or left; tabs + surface may share one HWND. See open-terminal host. |
Decoupled index |
Index window holds tabs/thumbs; sessions in separate OS windows. |
Project-grouped manager (this page) |
Single dedicated manager window; tabs grouped by the DevCentr project that spawned them; vertical tabs are the ideal default (groups down the side). Live PTY surfaces remain session windows (or co-located panes) per association rules. |
Nested zones |
Optional contained tiling inside the dedicated manager UI / per-monitor zone windows. See Nested zones. |
Other |
Future OK; do not over-specify. |
Project-grouped manager is a DevCentr-spawned specialization of the subscriber/index idea in session association: DevCentr owns the project grid; Open Terminal owns the terminal chrome.
Division of surfaces
| Surface | Owner | Job |
|---|---|---|
Project grid / thumbnails |
DevCentr |
Browse projects; spawn and focus work; show project identity. |
Terminal manager (vertical tab groups) |
Open Terminal (host mode) |
Organize live sessions by spawn-project; focus/close/spawn more terminals for a group. |
Live PTY session windows |
Open Terminal session processes |
Paint cells; produce thumbs when associated; taskbar-visible in v0. |
Do not fold the DevCentr project grid into the manager window. Cross-link: Division of Labor, Relationship.
Vertical tabs (default)
Ideal default chrome for this mode:
+========+================================+ | Group A| | | tab | | | tab | focused PTY / session | | Group B| (or focus pointer to | | tab | separate session HWND) | | tab | | +========+================================+
-
Group = project that spawned the session in DevCentr (
groupId/ project key from association registration). -
Vertical rail is the default; top tabs remain available as a preference for users who want WT muscle memory inside the manager.
-
Last-used CLI app icon appears on session/tab chrome (see CLI app icons).
Linking manager focus to DevCentr grid
When the user focuses a session in the manager, DevCentr should show which project grid cell that session belongs to. Two options:
| Option | Mechanism | Verdict |
|---|---|---|
A — visual pipe |
Draw a "pipe" / connector from the manager window edge into the matching grid item / thumbnail edge (spatial flourish). |
Optional later; high polish cost; can feel noisy on multi-monitor or crowded grids. Cousin idea noted in open-terminal WINDOW-PIPING.adoc (prior art NOT FOUND). |
B — highlight + dull (preferred default) |
Highlight the thumbnail’s containing cell/tab in the DevCentr grid; dull other grid items. User swaps focus via the grid (click another project) or via manager tabs. |
Recommend as default. Cleaner, cheaper, works when windows do not share an edge; matches selection-dimming patterns users already know. |
Document both. Ship B first. Treat A as an optional flourish once association + highlight are stable.
HCI note (highlight vs pipe): highlight-vs-pipe-linking @ HCI-Nerdz.
Nested zones (optional)
Inside the dedicated manager, optionally embed contained tiling — scratch the Linux/dev tiling itch without hijacking the OS DE/WM.
-
Spawn faded/empty zones (e.g. one per monitor).
-
Place groups/sessions into zones; group membership stays stable; groups register to zones for display.
-
Vertical tab rail and DevCentr project grid remain the identity surfaces; zones are placement only.
Pattern (HCI): contained-tiling. Product: Nested zones. == Last-used CLI app icon
On each session/tab in the manager:
-
Show the last-used CLI app icon (not only the shell binary).
-
Discovery: CLI app icons (
app.icon/ package assets). -
Fallback: shell glyph, generic terminal icon, or first letter of argv0 if no icon resource.
Association payload hints
Extend registration (sketch) so DevCentr can highlight the right cell:
SessionRegistration groupId // DevCentr project key / spawn group sourceLayout // projectGroupedManager | ... spawnSource // "devcentr" | other tabs[] // id, title, surfaceId, lastCliAppId? lastCliAppId // optional; for tab chrome icon ...
Full handshake: Session association.
Non-goals
-
Moving DevCentr’s project grid into Open Terminal
-
Full visual-pipe implementation in v0
-
Exclusive manager role that hides all session taskbar windows (still deferred per session-association)
-
Full UI implementation (spec only)
-
OS-level tiling WM replacement (nested zones stay inside the dedicated UI)
Demo
Interactive mock (manager + DevCentr grid highlight/dull): shell-context-demo · Project manager.
Related
-
Product model: PRODUCT-MODEL.adoc
-
DevCentr toolchain-advisor / orchestration (consume; do not fork): practitioner docs remain in Dev-Centr