Skip to main content

Crate forge_terminal

Crate forge_terminal 

Source
Expand description

One terminal per seat: the PTY, the screen model, the OSC 133 scanner and the shell integration scripts.

A leaf. It knows nothing about a seat key, a socket or a session: one value per terminal, spawned with a shell, a cwd and an environment, and a small interface - write, resize, close, read the screen, read the state, and subscribe to the output. The workspace keys it by the slot; the server carries its bytes; the client draws them.

alacritty_terminal owns the PTY, the parser, Term with reflow and scrollback, and the event types. The event loop is forge’s own, because the client’s stream is the raw bytes and the event loop consumes them.

Re-exports§

pub use keys::Key;
pub use osc::Mark;
pub use osc::Marks;
pub use osc::Osc133;
pub use screen::Cursor;
pub use screen::ReadResult;
pub use screen::Screen;
pub use state::Exit;
pub use state::InputExpected;
pub use state::InputKind;
pub use state::Source;
pub use state::State;
pub use terminal::Error;
pub use terminal::OutputChunk;
pub use terminal::Terminal;
pub use terminal::TerminalConfig;

Modules§

keys
The named keys an agent may press, and the bytes each one sends.
osc
The OSC 133 scanner: exact command marks from the shell’s own integration.
parser 🔒
The parser’s view of the screen, with the one count the grid cannot give.
repaint
The attach repaint: the visible screen as a VT stream a client can draw.
screen
The screen as text: what the agent reads, and what a reattaching client is repainted from.
shell
The shell integration scripts, and how a shell is started with them.
state
What the terminal is doing, as the agent reads it.
terminal
One terminal: the PTY, the screen model, the read loop and the small interface a seat drives.