feat(flterm): render Kitty Unicode placements - #152
Conversation
Yazi image previews stay tofu for a precise reason, now evidenced: yazi transmits quietly (q=2) with U=1 and writes U+10EEEE placeholder cells instead of an explicit placement. The core stores the image and exposes the virtual placement, but flterm skips every non-viewport-visible placement — which virtual ones always are — so nothing paints. Plain a=T + a=p painting was proven working pixel-level in the process (earlier zero-pixel readings were a test-harness artifact: engine decode needs real-loop yields, fixed in the yazi capture settle). The repro covers the yazi path exactly and is skipped until flterm renders virtual placements (upstream elias8/libghostty#152 / ghostty-org/ghostty#13523).
|
Reproduced the yazi path end to end against 0.0.5/0.0.12 and can confirm the diagnosis: yazi sends I verified plain Workaround I landed in a fork ( opportunistic, no new C API needed): resolve placeholder runs from grid content — maximal same-id rectangles via Two harnesses notes that cost me time: (1) image decode completes via a native callback, so widget-test captures need real-loop yields ( |
Resolves #125
Expose Kitty Unicode placement iteration through libghostty bindings and render resolved occurrences in flterm while suppressing protocol placeholder glyphs and preserving image generation matching.
Blocked by ghostty-org/ghostty#13523