Scaffold + docs + headless cell spike. Not a Windows Terminal clone. Near-term env-refresh / host-chrome remains on the WT fork (openshellorg/terminal). This repo is the greenfield D host for multi-mode session UX.
Verdict (2026-08-28): stack is ready to spike a pane, not prime-time to replace WT.
| Mode | Summary |
|---|---|
Standalone |
Classic Terminal-like: tabs top or left; tabs + PTY can share one window (Start Menu launch). |
Decoupled index |
Index window = tabs and/or thumb grid; each live session may be its own OS window. Tabs not glued to PTY chrome. |
Other |
Future modes OK — do not over-specify. |
Standalone (one HWND) Decoupled index +----------------------+ +------------------+ +-------------+ | [tabs] PTY surface | | INDEX (tabs/thumbs)|--> | SESSION HWND| +----------------------+ +------------------+ +-------------+
Re-association: sessions (or whole multi-tab UIs) may handshake with subscriber UIs — tab array, titles, thumbnail permission; session produces thumbs, UI subscribes (v0: multiple subscribers; exclusive manager later). See PRODUCT-MODEL.adoc and session-association.
Canonical detail: docs/PRODUCT-MODEL.adoc.
Prior dlangui "window piping" implementation: NOT FOUND — see WINDOW-PIPING.adoc.
| Piece | Role |
|---|---|
|
ConPTY / POSIX PTY bindings |
|
VT/ANSI to character-cell screen |
|
Host chrome, DPI ( |
|
App-kit (state-forms) when chrome grows |
Consolas |
Curated cell font (Open Shell / shell-architecture typography) |
Headless cell spike (always; no GPU):
dub run -c spike-cellsPane spike (GLFW + dew GPU; needs Rust/cargo for vello-d bridge + sibling checkouts):
dub run -c spike-paneHive layout assumed:
github.com/
openshellorg/open-terminal/ (this)
../dlang-supplemental/{dew,dui,vello-d,pty-d,vt-d}/
-
Keep
openshellorg/terminalfor near-term env-refresh + host-chrome negotiation. -
Grow this repo for multi-mode multi-window UX + whole-UI scale. Migrate only when this host matches env-refresh UX and Open Shell chrome hooks.
-
Product model (layout modes + handshake)
MIT — see LICENSE.