Commit Graph

4 Commits

Author SHA1 Message Date
a
3a4e096d9b
Terminal compatibility batch
- Answer kitty keyboard protocol queries (CSI ?u -> CSI ?0u) and silently
  accept push/pop/set so clients detect the lack of support without a
  timeout, and so st stops logging them as unknown sequences.
- XTVERSION (CSI >0q) reports st(VERSION).
- DECRQM (CSI ?Ps$p / CSI Ps$p) reports the state of the common private
  and ANSI modes including 2026 (synchronized updates) and 2004.
- csiparse() now recognises the >, < and = private prefixes.
- New OSC7_OSC8_PATCH: OSC 7 stores the shell's working directory in
  term.cwd; OSC 8 hyperlinks are stored per cell and, with the
  openurlonclick patch, are clickable and take precedence over URL text
  detection.
- kitty: Unicode placeholder cells are now blitted from one cached scaled
  pixmap per virtual placement instead of rescaling every cell on every
  redraw.
2026-09-06 22:36:33 -05:00
a
56c4253a87
kitty: fix Unicode placeholder rendering
csiparse() mishandled colon-form SGR (ESC[38:2:r:g:bm): the undercurl
patch's readcolonargs() swallowed the colour sub-parameters, so the
foreground never became a truecolor value and the image id encoded in
it could not be recovered. Only consume colon args for non-colour
attributes, and only while ';' is still the separator.

Also suppress the U+10EEEE placeholder glyph itself when drawing, so
only the image shows.

Fixes the base64 decoder's signed shift overflow found by UBSan.
2026-09-06 22:30:56 -05:00
a
a4f4f96c62
kitty: draw negative z-index images under the text
Images with a negative z-index are composited between the background
and foreground passes of xdrawline, so that text renders on top of
them with alpha blending, as the protocol requires.
2026-09-06 20:47:48 -05:00
a
cb1f41c9ae
kitty: add kitty terminal graphics protocol support
Adds kitty.c/kitty.h implementing the kitty graphics protocol behind
KITTY_GRAPHICS_PATCH, enabled in patches.h.

Supports transmission (direct, file, temp file, POSIX shared memory),
the RGB/RGBA/PNG formats with a self-contained PNG decoder, zlib
compression, chunked transfers, placements with source rects, scaling,
cell offsets, z-index ordering with alpha blending via XRender,
relative and Unicode-placeholder virtual placements, the full set of
delete selectors, queries, image numbers and animation (frame
transfer, composition and playback).
2026-09-06 20:41:24 -05:00