#5626·zellij

Support Kitty graphics shared-memory transmission (t=s)

Author: 7heavenCreated Sep 17, 2026Updated Sep 17, 2026
Labelsenhancement

Kitty graphics playback works with mpv's default direct transmission, but shared-memory transmission does not work inside Zellij.

The Kitty graphics parser in Zellij 0.45.0 explicitly rejects t=s with ENOTSUPPORTED: "shared memory transfer is not supported".

Environment

  • macOS
  • Zellij 0.45.0
  • Ghostty 1.3.1
  • mpv v0.41.0-1049-g0b7ed670f

Steps to reproduce

Inside Zellij, using the same video:

  1. Run the default direct-transmission mode:

    bash
    mpv --no-config --vo=kitty --really-quiet video.mp4

    Video displays successfully.

  2. Enable shared-memory transmission:

    bash
    mpv --no-config --vo=kitty --vo-kitty-use-shm=yes --really-quiet video.mp4

    Video does not display.

Expected behavior

Zellij accepts Kitty t=s transmissions, reads the referenced POSIX shared-memory object, and displays the image through its existing Kitty graphics pipeline.

Motivation

Shared-memory transmission avoids sending the full Base64-encoded pixel data through the application's PTY. Supporting incoming t=s would improve compatibility with mpv and reduce the amount of data sent from mpv to Zellij.

I understand that Zellij currently re-emits images to the host terminal as direct RGBA data, so incoming shared-memory support alone would not eliminate the host terminal's parsing overhead.

A possible follow-up optimization would be shared-memory transmission from Zellij to a supporting local host terminal.

Relevant code and specification