The stable 1.0. Everything since v0.6.0 settles here.
Full write-up: https://cashmere.rs/blog/kitty-graphicsel-v100-document-zoom-pan-and-doctor/
Documents
- Doc-view reworked: pages centered,
n/pto flip,+/-/0to zoom. On Kitty a zoomed page is clipped to the window and panned by scrolling (pdf-tools style); on Sixel it renders at fit size. PDF, DVI, PostScript, and EPUB. - Converter-agnostic: uses MuPDF's
mutoolautomatically when onPATH(faster, sharper), Ghostscript still works.
Diagnostics and reliability
- New
M-x kitty-gfx-doctor: backend, cell size, text-sizing, tmux state, resolved Sixel encoder, and which external programs are installed. - "Terminal not supported" now reports why; a missing ImageMagick is surfaced instead of images silently never appearing.
- Timeout watchdog over every blocking external process (ImageMagick/identify/ffmpeg/typst) via
kitty-gfx-process-timeout(15s default), so a corrupt file can't freeze Emacs. - Startup probes deferred off the mode-enable path, fixing a conflict with kkp.el (#33).
Performance
- Clean refreshes skipped via per-window signatures (
kitty-gfx-skip-clean-refresh). - Background PNG conversion (
kitty-gfx-async-conversion), per-mtime cache, in-memory base64 cache (kitty-gfx-base64-cache-bytes), and a transmit queue that keeps keystrokes responsive.
Daemon and multiple terminals
emacs --daemonwith severalemacsclient -tclients at once: per-terminal backend, cell size, text-sizing, and transmitted-image state. Mixed Kitty and Sixel clients render concurrently.
Sixel
kitty-gfx-sixel-ditherandkitty-gfx-sixel-colors, pre-scaling before quantization, per-terminal tmux detection, and visible encode-failure feedback.
Headings
- OSC 66 rework: in-place editing,
string-width-based widths (CJK/emoji), no overlap with inline images, lazy visible-only scanning (kitty-gfx-heading-scan-visible-only).
Plus a full bug-sweep over the process, overlay, and protocol lifecycles. See CHANGELOG.org for the complete list.