tawasuyu

tawasuyu/llimphi

Sovereign retained-mode GPU UI framework in Rust (wgpu+vello+taffy+parley), Elm loop, 40+ widgets.

Rust 238TOML 102Markdown 83Shell 24178 Definiciones

⎇ main widgets/terminal/README.md Markdown · 27 líneas · 1.3 KB Historia crudo

chore: refresco desde el monorepo — 27 crates nuevos (anim, lottie, svg, mesh, image, layer, test, wire-view, widgets rag-sidebar/router/lazy-list/rive-button) y sync de los 95 existentes 93253cc22 · Sergio ·

1# llimphi-widget-terminal
2
3**Infinite, virtualized** terminal surface.
4
5Full design: `02_ruway/shuma/SDD-TERMINAL.md`. The control replaces the shell's
6`output_pane` in phases: unlimited scrollback at **constant** render cost (only
7the visible window is painted), three modes over the same cloth (IDE line / TUI
8grid / hybrid) and direct GPU where it pays off.
9
10**Phase 0:** **Layer 0** — `store::Scrollback`, an append-only scrollback store
11with a line index, a memory cap and O(1) access. Pure, with no UI dependencies:
12the agnostic core lives apart from whoever paints it (Rule 2).
13
14**Phase 1:** line mode — `view::line_surface` materializes only the visible rows
15under the widget's own `scroll_y` (**constant** render cost at unlimited
16scrollback), global numbering and colour by runs.
17
18**Phase 2:** **Layer 1** — the **blocks** model (`blocks`): the stream is a
19sequence of `blocks::Item`s (fixed-height chrome painted by the caller + ranges
20of store lines), virtualized over mixed heights with binary search; collapsing a
21block means not emitting its body. It maps the shell's `output_pane`
22(header/badge/stages/collapse) without the widget knowing about commands
23(Rule 2). Phase 1's line mode is the single-`Item::Lines` case.
24
25---
26
27Part of **llimphi** — see [llimphi](../../README.md).

README.md

llimphi-widget-terminal

Infinite, virtualized terminal surface.

Full design: 02_ruway/shuma/SDD-TERMINAL.md. The control replaces the shell's output_pane in phases: unlimited scrollback at constant render cost (only the visible window is painted), three modes over the same cloth (IDE line / TUI grid / hybrid) and direct GPU where it pays off.

Phase 0: Layer 0 — store::Scrollback, an append-only scrollback store with a line index, a memory cap and O(1) access. Pure, with no UI dependencies: the agnostic core lives apart from whoever paints it (Rule 2).

Phase 1: line mode — view::line_surface materializes only the visible rows under the widget's own scroll_y (constant render cost at unlimited scrollback), global numbering and colour by runs.

Phase 2: Layer 1 — the blocks model (blocks): the stream is a sequence of blocks::Items (fixed-height chrome painted by the caller + ranges of store lines), virtualized over mixed heights with binary search; collapsing a block means not emitting its body. It maps the shell's output_pane (header/badge/stages/collapse) without the widget knowing about commands (Rule 2). Phase 1's line mode is the single-Item::Lines case.


Part of llimphi — see llimphi.