Michael Grant
047308b156
image: retain ordered placements in the grid
...
Replace the per-cell image marker with sparse placement spans attached to
grid lines. A placement owns all of its spans and records the input
protocol, application image and placement IDs, z-index, and creation order.
This retains overlapping image layers without storing a list in every grid
cell. Grid operations move, split, clip, and remove only the affected spans.
Use the input protocol to determine image/text interaction: later text
damages SIXEL spans, while Kitty placements remain and are ordered by their
z-index. Rendering then adapts that one logical scene for each client,
rather than changing its semantics according to whether the outer terminal
uses Kitty or SIXEL.
2026-08-25 11:23:52 +01:00
Michael Grant
cf80845be7
Change some names of things for clarity.
2026-08-25 11:23:52 +01:00
Michael Grant
ed63826b15
Cleanup.
2026-08-25 11:22:26 +01:00
Michael Grant
b89f8b0624
Update Kitty image names
2026-08-25 11:22:26 +01:00
Michael Grant
d53f8eff9e
Add comments to image functions
2026-08-25 11:22:26 +01:00
Michael Grant
03efb5e293
Preserve text behind transparent Kitty images.
2026-08-25 11:22:26 +01:00
Michael Grant
ae0fa8068c
Preserve Kitty image crop width after cell rounding.
2026-08-25 11:22:26 +01:00
Michael Grant
596de59d11
Make image types opaque
2026-08-25 11:22:26 +01:00
Michael Grant
75b606c3df
The two Chawan symptoms now have matching fixes:
...
- Layout corruption: C=1 is respected.
- Lingering remnants: tmux now tracks Kitty’s (image ID, placement ID) identity, replaces moved placements, and honors
placement-specific d=i,...,p=... deletion.
2026-08-25 11:22:26 +01:00
Michael Grant
d674f34f25
Support Kitty Unicode placeholder image transmission
...
- Parse Kitty graphics commands wrapped in tmux passthrough sequences.
- Accept unpadded base64 payloads emitted by icat.
- Handle chunked transfers whose final chunk omits m.
- Track virtual image placements.
- Convert Unicode placeholders into shared image cells for Kitty and SIXEL clients.
- Add regression coverage for wrapped, chunked, unpadded input.
2026-08-25 11:22:26 +01:00
Michael Grant
52e2e2b0c0
C=1 is parsed and stored as an image-placement flag, suppressing cursor movement and scrolling as required by the Kitty protocol.
2026-08-25 11:22:26 +01:00
Michael Grant
260cde9f48
Remove obsolete Kitty diacritics comment
2026-08-25 11:22:26 +01:00
Michael Grant
c8fe307682
Support Kitty source rectangle placements
2026-08-25 11:22:26 +01:00
Michael Grant
d8da527882
Refactor to centralize image-specific rendering and lifecycle code in image.c and the image-* backends.
2026-08-25 11:22:26 +01:00
Michael Grant
0852a39e31
Move image-diacritics.h into image-kitty.c.
2026-08-25 11:22:26 +01:00
Michael Grant
825b2c39b8
Fix copyrights.
2026-08-25 11:22:26 +01:00
Michael Grant
3e6e0a2860
New image related files.
2026-08-25 11:22:26 +01:00