Evaluate libghostty-vt as the terminal core #13
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Terminalko renders terminals with VTE (
vte-2.91-gtk4, LGPL-2.1+), throughthe
vte4crate. That choice is the foundation of the project: it is why theplan chose Rust in the first place — the terminal core is a mature C library and
the novelty is everything around it (
docs/spec/session-agent.md).libghostty-vtis Ghostty's terminal core, extracted as a zero-dependency librarywith a C ABI: escape-sequence parsing, grid, scrollback, reflow, input encoding.
It is MIT, which suits this project's BSD-2 licence better than LGPL does.
The question
Is there a reason to move? This is research, not implementation, and the honest
default is no. What would have to be true for it to be worth it:
when a window reattaches, and cannot do better because VTE's grid lives in the
window and dies with it (
docs/spec/session-agent.md). If the agent owned alibghostty grid instead, a reattaching window could be handed the real
scrollback. That is the one capability VTE cannot give, and it is a significant
one for a program whose selling point is sessions outliving windows.
a GL area — which is a large amount of work VTE currently does, including font
fallback, ligatures, bidi, selection, accessibility and IME.
What this issue asks for
A written comparison, not code:
as of writing, upstream says the API is explicitly not stable yet.
listing every
TerminalExtmethod the code calls(
crates/terminalko/src/terminal.rsandpage.rs) and saying what replaceseach.
crosses the socket (an updated grid rather than raw bytes changes the protocol
fundamentally), and what happens to the "VTE reads the pty directly while
attached" property that keeps output off the IPC path today.
docs/spec/.Acceptance criteria
docs/that someone can read and decide from, including the listin point 2 — the useful part, and the part that says how large this is.
separate issue per step.
Notes
CONTRIBUTING.md.