pub enum TermEvent {
Show 16 variants
Title(String),
Bell,
Cwd(String),
ColumnMode {
cols: usize,
},
ColorSchemeQuery,
SetPaletteColor {
index: u8,
spec: String,
},
SetForeground(String),
SetBackground(String),
ResetPaletteColor(Option<u8>),
QueryPaletteColor {
index: u8,
},
ResetForeground,
ResetBackground,
QueryForeground,
QueryBackground,
MarkerDisposed(MarkerId),
MarkerCreated {
id: MarkerId,
line: u32,
kind: MarkerKind,
},
}Expand description
A consumer-facing event emitted while parsing the VT stream.
Variants§
Title(String)
The window/icon title was set (OSC 0 or OSC 2).
Bell
The terminal bell rang (BEL, 0x07).
Cwd(String)
The working directory was reported (OSC 7), e.g. file://host/path.
ColumnMode
The app requested 80/132-column mode (DECCOLM ?3). justerm is
dimension-free, so this is a request — the consumer may honor it by
calling resize(cols, rows), or ignore it. cols is 80 or 132 (#82).
ColorSchemeQuery
The app queried the light/dark color scheme (DSR CSI ? 996 n). justerm
is theme-agnostic, so the consumer (which knows the scheme) answers by
calling Engine::report_color_scheme (#85).
SetPaletteColor
The app set ANSI palette entry index to spec (OSC 4). One event per
index ; spec pair in the sequence. The cell still references
Indexed(index) — only the consumer’s palette[index] changes, so the
engine stays theme-agnostic (#122).
SetForeground(String)
The app set the default foreground colour (OSC 10). Raw spec, forwarded
for the consumer to apply — theme-agnostic, like SetBackground (#122).
SetBackground(String)
The app set the default background colour (OSC 11). The engine is
theme-agnostic, so it forwards the raw spec string (rgb:…/#…) for the
consumer to parse and apply to its palette — it never holds hex (#122).
ResetPaletteColor(Option<u8>)
The app reset palette entries to the theme default (OSC 104). None =
the whole table (no argument); Some(index) = one entry, one event per
index given. The consumer restores its palette (#122).
QueryPaletteColor
The app queried ANSI palette entry index (OSC 4 with ? for that pair);
the consumer answers with report_palette_color (#122).
ResetForeground
The app reset the default foreground to the theme default (OSC 110, #122).
ResetBackground
The app reset the default background to the theme default (OSC 111, #122).
QueryForeground
The app queried the default foreground colour (OSC 10 with ?); the
consumer answers with report_foreground (#122).
QueryBackground
The app queried the default background colour (OSC 11 with ?). The
theme-agnostic engine relays it; the consumer answers with
report_background (#122), mirroring ColorSchemeQuery.
MarkerDisposed(MarkerId)
A decoration marker’s line left the buffer — evicted past the scrollback
cap, or scrolled out of an in-screen region (#118). The handle is now
dead; the consumer drops the decoration bound to it. This is the
frame-mode equivalent of xterm’s IMarker.onDispose — disposal is a
point-in-time fact (a marker absent from a frame may merely be scrolled
off-screen), so it rides the event queue, not the frame overlay.
MarkerCreated
A marker was created (#490) — by add_marker, or by the stream through an
OSC 133 command mark, which the consumer never called for.
The mirror of TermEvent::MarkerDisposed, and it exists for the same reason
ADR-0020 R1 gives: an appearance is an occurrence, not state, so it rides this
queue rather than a frame field. Without it a consumer that pulled a marker
index (Engine::marker_index) has no way to learn of a marker born after its
pull — the population would only ever shrink.
line is absolute at the moment of creation, on the same basis the pull
reports (Frame::evicted_total), so a consumer appends the entry and rebases it
exactly like a pulled one. Deliberately not an epoch bump: a bump costs a whole
re-pull, and creation is O(1) information.