kitty-graphics.el v0.6.0: inline video, web browser, and improved tmux support
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, withSPCpause/resume,qstop,?help. dired/dirvish gained inline previews: video thumbnails in the preview pane pluskitty-gfx-dired-play-videoandRETfull-frame playback (opt-inkitty-gfx-dirvish-video-inline-preview). Graceful ffmpeg fallback. Kitty backend only; needs mpv ≥ 0.36.0 with--vo=kittyandkitty-gfx-enable-video. - Inline web browser (experimental) —
kitty-gfx-browseembeds 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 withkitty-gfx-enable-browser; point it at your own Chromium viakitty-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, defaultt), and a new Unicode-placeholder placement mode (kitty-gfx-kitty-placement-mode, defaultauto) 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.