Skip to content

Implement Kitty graphics protocol animation pause, load frame, and composite frame #6709

@pluiedev

Description

@pluiedev

Discussed in #6681

Originally posted by chase March 12, 2025
Rather than implementing the full protocol (worrying about timings and such), having client controlled animation should make this much simpler to implement. Skipping blending and only allowing C=1 (no blending, just replace the destination area with the source) would be even simpler.

Animation pause would be a no-op for now, since animation isn't supported for non-controlled, but won't return an error.

Animation load frame needs to load a texture which is equal-to-or-smaller than the image it is added to, cropping the source as necessary.

Composite frame needs to take a loaded frame and the source image, compositing the loaded frame over the original texture at the provided coordinates, then display.

I'm considering taking a crack at this myself, but I know neither Zig nor the codebase, so there may be someone who is better fitted for this.

My motivation is caused by a lot of Ghostty users expecting my project to work, despite not the fact the protocol is only partially implemented: chase/awrit#62

Metadata

Metadata

Assignees

No one assigned

    Labels

    vtControl sequence related

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions