Skip to content

kitty-graphics.el v0.6.0: inline video, web browser, and improved tmux support

Choose a tag to compare

@cashmeredev cashmeredev released this 05 Jun 23:58
v0.6.0
43840da

Full write-up: the v0.6.0 announcement post.

Features

  • Inline mpv video playback (Kitty backend) — play videos right inside a terminal Emacs buffer via mpv and the Kitty graphics protocol. kitty-gfx-play-video, with SPC pause/resume, q stop, ? help. dired/dirvish gained inline previews: video thumbnails in the preview pane plus kitty-gfx-dired-play-video and RET full-frame playback (opt-in kitty-gfx-dirvish-video-inline-preview). Graceful ffmpeg fallback. Kitty backend only; needs mpv ≥ 0.36.0 with --vo=kitty and kitty-gfx-enable-video.
  • Inline web browser (experimental)kitty-gfx-browse embeds casty (a headless-Chrome bridge; my fork of sanohiro/casty) over an IPC socket to drive a real web page inside a buffer: scroll, history, reload, Vimium-style link hints, and mouse clicks, with evil bindings mirrored by default. Enable with kitty-gfx-enable-browser; point it at your own Chromium via kitty-gfx-casty-chrome / CASTY_CHROME. Kitty terminal only.
  • Kitty graphics inside tmux — APC sequences are now wrapped in the tmux DCS passthrough envelope (kitty-gfx-tmux-passthrough, default t), and a new Unicode-placeholder placement mode (kitty-gfx-kitty-placement-mode, default auto) keeps images correct across pane and window switches. The Kitty-backend detector also recognises Ghostty/WezTerm when running inside a multiplexer.

Notes

  • Inline video and the inline browser are Kitty-backend only.
  • tmux's cell buffer is not pixel-aware, so images can stick to an old position after scrolling until those cells are overwritten — an upstream tmux limitation.

Thanks to unship (Kitty graphics in tmux: DCS passthrough and Unicode-placeholder placement, plus dirvish video frame placement) and Tim Felgentreff (per-window image placement tracking, doc-view rendering in terminals, elfeed image support, and split-window position fixes) for their work on this release.

Full changelog in CHANGELOG.org.