The "Lenna" test image has been deprecated for several years at this
point in the computer graphics scientific community for being an
unauthorized, cropped scan of a Playboy magazine that is not only legally
problematic regarding redistribution (see #661) but also raises questions
about the appropriateness of using originally pornographic material in
scientific literature. **If scientific journals now find it unacceptable,
so should we, and we should do better**.
The image itself has been long gone from the repo itself following #661,
but it's still present in a screenshot attached to the documentation.
Although that resolved legal issues for Debian packaging, I think the
fundamental problem with the Lenna image remains unsolved, and over the
past 8 years the scientific consensus (and more importantly, the
sentiment from the model herself, Lena Forsén) has been very clear that
we shouldn't use this image in any shape or form now. So let's replace it
with something actually wholesome and thematically appropriate!
Instead, I've taken a screenshot of `gr.py`, but with Lenna replaced with
a photo of a friend's cat. I took the original photo myself and licensed
it under CC0 — no attribution is required, though it would certainly be
welcome. Some minor things about the composition have been changed, such
as the proportions of the images and the font used (sorry, I don't know
which font the original used, I'm using Iosevka here since it's my system
monospace font), but overall it shows off the capabilities of the
Graphics Protocol as well as the original.
Please let me know of any feedback regarding the image selection and the
composition, but I think this is a worthy step to take.
desktui is a VNC client that renders the remote framebuffer with the
graphics protocol, one remote pixel per terminal pixel.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Change the graphics protocol N key from a boolean into a usage-hints
bitmask. Define the first bit as a transient hint, allowing the terminal
to treat the image data as short-lived and apply optimizations such as
skipping disk cache writes.
Propagate the transient hint through frame coalescing and composition, so
a composed frame is transient if any contributing frame is transient.
Add a new graphics protocol key, N=1, to request that transmitted
image/frame data is kept only in memory and not written to the graphics
disk cache file.
This is useful for transient high-frequency updates such as video-like
streams, where the latest frame is the only useful data and persisting
each frame to the disk cache causes unnecessary write traffic.
The implementation keeps the existing graphics cache abstraction intact:
memory-only entries can still be read back by animation, composition, and
frame coalescing paths. Only persistence to the disk cache file is skipped.
The default behavior is unchanged when N is omitted or set to zero.
Ghostty 1.0 was just released. It implements the Kitty Graphics Protocol. I used a link to the specific code that implements the prototocol. Alternatively, could use the feature page https://ghostty.org/docs/features or home page https://ghostty.org
Add broot to the list of applications using Kitty's graphics protocol
(IMO it would be easier to read with an alphabetical sorting and by removing the gratuitous "blazing fast" assertions but that's out of scope of this PR)