perf: compress kitty forwarding when png is supported - #3934
Conversation
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one) (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Hi @samehkhamis, thanks for your interest in contributing. Herdr does not accept unsolicited implementation pull requests from contributors who are not listed in The pull request author is not an approved contributor. If you encountered a reproducible bug, report the observed behavior through the bug issue template. A report does not reserve the work or authorize a pull request; accepted fixes are normally implemented by Herdr’s maintainer-controlled agents. Feature requests, behavior changes, and other proposals belong in GitHub Discussions. Do not open an issue merely to justify an implementation that was already written. If a maintainer explicitly wants this implementation, they can reopen the pull request. Reopening by anyone else will be closed again automatically. See https://github.com/herdrdev/herdr/blob/master/CONTRIBUTING.md for the contribution policy. |
Herdr decodes pane images into raw pixels before forwarding them to the host terminal. For continuously updated graphics, the resulting output traffic can delay visible responses to input.
This change queries the host terminal's Kitty PNG support during Unix client startup. A successful response enables lossless PNG forwarding for RGB/RGBA images through the existing encoder dependency. Rejection, silence, or an encoding error preserves raw forwarding. The asynchronous query uses the existing input framing and does not block startup.
The minimum render interval also changes from 16 ms to 8 ms to permit presentation above 60 FPS. This affects all actively redrawing panes and may increase CPU usage.
Validation:
just cipassed: formatting, Clippy, 3,354 Rust tests, 107 Python tests, and 29 integration tests.XDG_RUNTIME_DIRwas unset because it pointed to a nonexistent directory in the local environment.