forge_terminal/lib.rs
1//! One terminal per seat: the PTY, the screen model, the OSC 133 scanner and
2//! the shell integration scripts.
3//!
4//! **A leaf.** It knows nothing about a seat key, a socket or a session: one
5//! value per terminal, spawned with a shell, a cwd and an environment, and a
6//! small interface - write, resize, close, read the screen, read the state,
7//! and subscribe to the output. The workspace keys it by the slot; the server
8//! carries its bytes; the client draws them.
9//!
10//! `alacritty_terminal` owns the PTY, the parser, `Term` with reflow and
11//! scrollback, and the event types. The event loop is forge's own, because
12//! the client's stream is the raw bytes and the event loop consumes them.
13
14pub mod keys;
15pub mod osc;
16mod parser;
17pub mod repaint;
18pub mod screen;
19pub mod shell;
20pub mod state;
21pub mod terminal;
22
23pub use keys::Key;
24pub use osc::{Mark, Marks, Osc133};
25pub use screen::{Cursor, ReadResult, Screen};
26pub use state::{Exit, InputExpected, InputKind, Source, State};
27pub use terminal::{Error, OutputChunk, Terminal, TerminalConfig};