Expand description
Surface presenters: the kitty strategies (whole frames with alternating image ids, tile patches, terminal-side animation), sixel tiles for terminals without kitty graphics, and the damage-tracked blocks fallback every truecolor terminal runs.
Structs§
- Animated
Kitty - The animated kitty surface presenter: the first frame becomes the root frame of one image, placed once, and every later surface appends a frame composed onto the previous one plus the rectangles that changed. Playback runs in the terminal: loading mode plays the frames it holds at the gap pace and waits for more, so the wire is a buffer, jitter never reaches the screen, and motion happens at the compositor’s rate rather than the client’s. An unchanged frame writes nothing.
- Blocks
Surface - The stateful blocks presenter: renders a pixel surface as quarter-block cells once, then repaints only the cells whose pixels changed.
- Buffer
Surface - The stateful cell-buffer presenter: writes a buffer’s cells once, then per frame only the cells that changed, inside synchronized output. Indexed and truecolor cell colors travel through verbatim, which makes this the presenter cell-plane demos drive directly and the engine behind the blocks path. A fresh or resized buffer clears and repaints everything; an unchanged frame writes nothing.
- Kitty
Surface - The full-frame kitty surface presenter: every frame transmits the whole surface compressed under one of two alternating image ids and places it, deleting the previous frame’s placement, so the terminal never shows a half-updated image.
- Patched
Kitty - The patched kitty surface presenter: transmits the whole surface once, then per frame retransmits only the tiles whose pixels changed, each as its own small image under a stable tile id, placed over the base. The kitty protocol has no in-place pixel update (retransmitting an id replaces the image and its placements), so a tile id is simply retransmitted and its placement replaced without flicker. A frame with more damaged tiles than the patch budget, a resize, or anything that loses the base image falls back to one whole retransmit. An unchanged frame writes nothing.
- Pixel
Screen - Renders a pixel surface full-screen through the best strategy the terminal offers.
- Sixel
Surface - The sixel surface presenter. Sixel images have no scaling, so we scale the surface to whole cells ourselves, nearest pixel. We leave the bottom row out, because a sixel touching it scrolls the screen.
Traits§
- Stash
- Puts pixels where a terminal on this machine reads them, so a frame skips compression, base64 and the terminal connection.