Skip to content

kitty-graphics.el v1.0.0

Latest

Choose a tag to compare

@cashmeredev cashmeredev released this 16 Jun 14:21
· 2 commits to master since this release
v1.0.0
6076662

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/p to flip, +/-/0 to 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 mutool automatically when on PATH (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 --daemon with several emacsclient -t clients at once: per-terminal backend, cell size, text-sizing, and transmitted-image state. Mixed Kitty and Sixel clients render concurrently.

Sixel

  • kitty-gfx-sixel-dither and kitty-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.