Branch: refs/heads/4902-image-support
  Home:   https://github.com/tmux/tmux
  Commit: f72e789240f1f1383a06bc680f7217879aad20ef
      
https://github.com/tmux/tmux/commit/f72e789240f1f1383a06bc680f7217879aad20ef
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M Makefile.am
    M configure.ac
    M format.c
    M grid.c
    M image-sixel.c
    M image.c
    M input.c
    M options-table.c
    M screen-redraw.c
    M screen-write.c
    M screen.c
    M style.c
    M tmux.h
    M tty-draw.c
    M tty-features.c
    M tty.c
    M window-copy.c

  Log Message:
  -----------
  Initial commit.  Implement generalised image support.


  Commit: d601d0d8c567a30274e3efdcfcbd8d405ee2137f
      
https://github.com/tmux/tmux/commit/d601d0d8c567a30274e3efdcfcbd8d405ee2137f
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M screen-redraw.c
    M tmux.h
    M tty-draw.c
    M tty-features.c
    M tty.c

  Log Message:
  -----------
  Fix image flickering.


  Commit: 3e6e0a286085e0474a507e706d0a114fd513bab4
      
https://github.com/tmux/tmux/commit/3e6e0a286085e0474a507e706d0a114fd513bab4
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    A image-ascii.c
    A image-kitty.c

  Log Message:
  -----------
  New image related files.


  Commit: 80f2ab72377aeaa4ccf9e75e6562f9d1c45e8fd6
      
https://github.com/tmux/tmux/commit/80f2ab72377aeaa4ccf9e75e6562f9d1c45e8fd6
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    A image-diacritics.h

  Log Message:
  -----------
  Add missing .h file.


  Commit: 825b2c39b8f8fb7b34a85baaf72dd4d6edbe9906
      
https://github.com/tmux/tmux/commit/825b2c39b8f8fb7b34a85baaf72dd4d6edbe9906
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-ascii.c
    M image-kitty.c
    M image-sixel.c
    M image.c

  Log Message:
  -----------
  Fix copyrights.


  Commit: 0852a39e31f18a5b44224567809c6312e2420a72
      
https://github.com/tmux/tmux/commit/0852a39e31f18a5b44224567809c6312e2420a72
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    R image-diacritics.h
    M image-kitty.c

  Log Message:
  -----------
  Move image-diacritics.h into image-kitty.c.


  Commit: 8fc9c3a5f946f2d354e25e015eb358794af2ff73
      
https://github.com/tmux/tmux/commit/8fc9c3a5f946f2d354e25e015eb358794af2ff73
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    A regress/image-support.sh
    A regress/monkey-2.sixel.txt

  Log Message:
  -----------
  Add missing regression test files.


  Commit: 5432f2ef0a42945ef66ad7209d36f3edb20e5452
      
https://github.com/tmux/tmux/commit/5432f2ef0a42945ef66ad7209d36f3edb20e5452
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    A tools/generate-image-diacritics.sh

  Log Message:
  -----------
  Add tool to generate the kitty diacritics directly from the public 
UnicodeData.txt file.


  Commit: d8da5278822783ed05635685e75b636f3877c07d
      
https://github.com/tmux/tmux/commit/d8da5278822783ed05635685e75b636f3877c07d
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M .gitignore
    M Makefile.am
    M image-ascii.c
    M image-kitty.c
    M image-sixel.c
    M image.c
    M input.c
    M regress/image-support.sh
    M screen-redraw.c
    M screen-write.c
    M screen.c
    M tmux.h
    M tty-draw.c
    M tty.c

  Log Message:
  -----------
  Refactor to centralize image-specific rendering and lifecycle code in image.c 
and the image-* backends.


  Commit: 4e379f38d683eeab237bd81343b03ae445976ed4
      
https://github.com/tmux/tmux/commit/4e379f38d683eeab237bd81343b03ae445976ed4
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M .gitignore
    M Makefile.am

  Log Message:
  -----------
  Remove local image ASCII test tool references


  Commit: 4e7f3d5520fbb472f47a17fd58c5188e927f6739
      
https://github.com/tmux/tmux/commit/4e7f3d5520fbb472f47a17fd58c5188e927f6739
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M tmux.1
    M tty-features.c

  Log Message:
  -----------
  Use sixel images for WezTerm

Enable the sixel feature when WezTerm is detected and clarify that the kitty 
terminal feature requires Unicode placeholder support rather than only the 
basic graphics protocol.


  Commit: 52863f0fe963e23ef293cf39210d9bb5902cb991
      
https://github.com/tmux/tmux/commit/52863f0fe963e23ef293cf39210d9bb5902cb991
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M tty.c

  Log Message:
  -----------
  Redraw images after pixel geometry changes

A resize may temporarily leave the terminal cell pixel dimensions unknown while 
tmux queries the terminal. Schedule another client redraw when the pixel 
geometry response arrives so the graphical backend replaces the temporary text 
fallback.


  Commit: 9731adb30062fd156c1b666d166506e4f32ed5ca
      
https://github.com/tmux/tmux/commit/9731adb30062fd156c1b666d166506e4f32ed5ca
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-sixel.c

  Log Message:
  -----------
  Correct SIXEL HLS colour conversion

Use the DEC hue origin and channel order, and round percentage and HLS 
conversions to the nearest byte value.


  Commit: 643bb662a00d1a851e438776d6491e5e7abb18fc
      
https://github.com/tmux/tmux/commit/643bb662a00d1a851e438776d6491e5e7abb18fc
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-sixel.c
    M image.c
    M regress/image-support.sh
    M tmux.h

  Log Message:
  -----------
  Preserve SIXEL pixel dimensions

Retain the padded canonical pixel canvas separately from the image content. 
Scale only the populated portion of partial edge cells so an image keeps its 
exact raster size on the originating terminal while retaining its cell 
footprint.


  Commit: 2c7a5f73c4aa3afe5ae1f0b7c42818159c554065
      
https://github.com/tmux/tmux/commit/2c7a5f73c4aa3afe5ae1f0b7c42818159c554065
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-sixel.c

  Log Message:
  -----------
  Improve SIXEL colour quantization

Build an adaptive 256-colour palette with median cut instead of using a fixed 
colour cube. Apply Floyd-Steinberg error diffusion while mapping pixels to 
reduce banding and preserve image detail.


  Commit: c8fe307682a107ba96fd9f7e5781155d856cae2e
      
https://github.com/tmux/tmux/commit/c8fe307682a107ba96fd9f7e5781155d856cae2e
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-kitty.c
    M image.c
    M regress/image-support.sh
    M tmux.h

  Log Message:
  -----------
  Support Kitty source rectangle placements


  Commit: 260cde9f48c3521a04a5c5deddaa9cea79956f30
      
https://github.com/tmux/tmux/commit/260cde9f48c3521a04a5c5deddaa9cea79956f30
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-kitty.c

  Log Message:
  -----------
  Remove obsolete Kitty diacritics comment


  Commit: a4d6004d40196aceb8137ead7fb3c6e6f44b7a9d
      
https://github.com/tmux/tmux/commit/a4d6004d40196aceb8137ead7fb3c6e6f44b7a9d
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-sixel.c
    M image.c

  Log Message:
  -----------
  Correct image copyrights


  Commit: 5fc24e373a91f2b5acfabaf74b0ae4cca5e52ae2
      
https://github.com/tmux/tmux/commit/5fc24e373a91f2b5acfabaf74b0ae4cca5e52ae2
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image.c
    M screen-write.c
    M tmux.h

  Log Message:
  -----------
  Rename image damage functions to redraw


  Commit: e602dfa771d36388af8ba80c408a645b8048b296
      
https://github.com/tmux/tmux/commit/e602dfa771d36388af8ba80c408a645b8048b296
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-sixel.c
    M image.c
    M screen-write.c
    M tmux.h

  Log Message:
  -----------
  Keep SIXEL palettes across redraw spans


  Commit: 52e2e2b0c05e556fbd6f24b3b3102a29675f3f33
      
https://github.com/tmux/tmux/commit/52e2e2b0c05e556fbd6f24b3b3102a29675f3f33
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-kitty.c
    M image.c
    M regress/image-support.sh
    M tmux.h

  Log Message:
  -----------
  C=1 is parsed and stored as an image-placement flag, suppressing cursor 
movement and scrolling as required by the Kitty protocol.


  Commit: cc4a76d0be6b333d64812b0c4b1b1bf5cfb48544
      
https://github.com/tmux/tmux/commit/cc4a76d0be6b333d64812b0c4b1b1bf5cfb48544
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-sixel.c
    M regress/image-support.sh

  Log Message:
  -----------
  Removed unconditional Floyd–Steinberg dithering from image-sixel.c:1077. 
Kitty images now use the adaptive 256-colour median-cut palette with direct 
nearest-colour mapping.


  Commit: f81c41929bc9c9921b109bdd5539c0d0fc114d77
      
https://github.com/tmux/tmux/commit/f81c41929bc9c9921b109bdd5539c0d0fc114d77
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M grid.c
    M regress/image-support.sh

  Log Message:
  -----------
  Fix kitty image resize issue when the kitty image resized smaller than the 
image, the image was overflowing lines and banding.


  Commit: c0ab9b7b3fe778ccfbeb69001afe25797b9d3f96
      
https://github.com/tmux/tmux/commit/c0ab9b7b3fe778ccfbeb69001afe25797b9d3f96
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-sixel.c
    M regress/image-support.sh

  Log Message:
  -----------
  Revert "Removed unconditional Floyd–Steinberg dithering from 
image-sixel.c:1077. Kitty images now use the adaptive 256-colour median-cut 
palette with direct nearest-colour mapping."

This reverts commit ab591ae4302f52f6a9775dce4965419f16dd7ea6.


  Commit: 8b44703b41d88ea626b91c3c42e065ae207be08f
      
https://github.com/tmux/tmux/commit/8b44703b41d88ea626b91c3c42e065ae207be08f
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-sixel.c
    M regress/image-support.sh

  Log Message:
  -----------
  Fix SIXEL median-cut palette generation


  Commit: d674f34f253583a6fa91579993d6f41738cc5006
      
https://github.com/tmux/tmux/commit/d674f34f253583a6fa91579993d6f41738cc5006
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-kitty.c
    M image.c
    M input.c
    M regress/image-support.sh
    M tmux.h

  Log Message:
  -----------
  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.


  Commit: 75b606c3df81a458051879d683fb32fe37ac008f
      
https://github.com/tmux/tmux/commit/75b606c3df81a458051879d683fb32fe37ac008f
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-kitty.c
    M input.c
    M regress/image-support.sh
    M tmux.h

  Log Message:
  -----------
  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.


  Commit: 674cdd94f58a83d99e5d21116f5e483bb49bc4f6
      
https://github.com/tmux/tmux/commit/674cdd94f58a83d99e5d21116f5e483bb49bc4f6
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M regress/image-support.sh

  Log Message:
  -----------
  Add bptato's test to the regression test script.


  Commit: 7d2d187db4990a93e057fee0f7704e3b99f7036e
      
https://github.com/tmux/tmux/commit/7d2d187db4990a93e057fee0f7704e3b99f7036e
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M Makefile.am
    R image-ascii.c
    M image.c
    M tmux.h
    M tty-draw.c
    M tty.c

  Log Message:
  -----------
  Inline basic image fallback renderer


  Commit: 596de59d118bfa421f9c0e1814b8675fb09bcee2
      
https://github.com/tmux/tmux/commit/596de59d118bfa421f9c0e1814b8675fb09bcee2
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-kitty.c
    M image-sixel.c
    M image.c
    M input.c
    M screen-write.c
    M tmux.h

  Log Message:
  -----------
  Make image types opaque


  Commit: 0b2739c62c520a48d6d821203f60bae21092e7ab
      
https://github.com/tmux/tmux/commit/0b2739c62c520a48d6d821203f60bae21092e7ab
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M configure.ac
    M input.c
    M screen-write.c
    M tmux.h

  Log Message:
  -----------
  Use one image support switch


  Commit: 95b6adbd61ec37f064beffcf85457cdae8d7db08
      
https://github.com/tmux/tmux/commit/95b6adbd61ec37f064beffcf85457cdae8d7db08
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M configure.ac
    M image-sixel.c
    M image.c

  Log Message:
  -----------
  Simplify image support terminology


  Commit: 628acfd802ba2422c98a343ff96587fee75489b9
      
https://github.com/tmux/tmux/commit/628acfd802ba2422c98a343ff96587fee75489b9
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M input.c
    M regress/image-support.sh

  Log Message:
  -----------
  Pass through wrapped Kitty graphics


  Commit: ba2dc2cfb6f5c716e2670be84e815959079b7062
      
https://github.com/tmux/tmux/commit/ba2dc2cfb6f5c716e2670be84e815959079b7062
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M tty-draw.c

  Log Message:
  -----------
  Clear text beneath graphical images


  Commit: fb931f167619ce6c79380bdfa28c1b35860f7af9
      
https://github.com/tmux/tmux/commit/fb931f167619ce6c79380bdfa28c1b35860f7af9
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M grid.c
    M image.c
    M tmux.h

  Log Message:
  -----------
  Use compact image references in grid cells


  Commit: 002d38cb6b1bc6838389bbad24d791c1b119e11c
      
https://github.com/tmux/tmux/commit/002d38cb6b1bc6838389bbad24d791c1b119e11c
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M tty-draw.c

  Log Message:
  -----------
  Revert "Clear text beneath graphical images"

This reverts commit fb589fd9f92d23e97dbaf59149b0a41d7862c78c.


  Commit: b6c709307ee363e259300a04c50af6fea0abdf4d
      
https://github.com/tmux/tmux/commit/b6c709307ee363e259300a04c50af6fea0abdf4d
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-sixel.c

  Log Message:
  -----------
  Dither alpha in SIXEL output


  Commit: 3442c1f26f3113a3df29da871e7ec1bc2a4945cf
      
https://github.com/tmux/tmux/commit/3442c1f26f3113a3df29da871e7ec1bc2a4945cf
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image.c
    M regress/image-support.sh
    M tty-draw.c

  Log Message:
  -----------
  Fix underlay bookkeeping bug.


  Commit: ae0fa8068c3d729531dd53a15ed721ea0894bc8c
      
https://github.com/tmux/tmux/commit/ae0fa8068c3d729531dd53a15ed721ea0894bc8c
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-kitty.c

  Log Message:
  -----------
  Preserve Kitty image crop width after cell rounding.


  Commit: 69ee9cf7f4b8bdb984eca8b52dafa15af8cd6a3c
      
https://github.com/tmux/tmux/commit/69ee9cf7f4b8bdb984eca8b52dafa15af8cd6a3c
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M grid.c
    M regress/image-support.sh
    M screen-write.c

  Log Message:
  -----------
  Ordinary text writes replaced the entire grid cell, dropping GRID_FLAG_IMAGE 
and releasing the
mage reference. Deferred pane redraws explain the intermittent “image never 
appears” behavior.

Fixed:
  - Preserves image metadata while updating the text underlay in the collected 
ASCII path: grid.c:779
  - Handles the single-cell/non-ASCII path and schedules an image redraw: 
screen-write.c:2631
  - Uses the requested if/else for new_id.
  - Adds a deterministic regression reproducing point (2): 
regress/image-support.sh:240

  This matches Kitty’s requirement that normal text operations must not affect 
graphics; graphics require
  explicit deletion. Kitty graphics protocol


  Commit: e5bcf59768bc029293a7068b738b574ff017404f
      
https://github.com/tmux/tmux/commit/e5bcf59768bc029293a7068b738b574ff017404f
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-sixel.c

  Log Message:
  -----------
  Clear text beneath SIXEL image placements.


  Commit: 2603f84b0a26acd4f68889b54c65d0581f255d54
      
https://github.com/tmux/tmux/commit/2603f84b0a26acd4f68889b54c65d0581f255d54
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-sixel.c

  Log Message:
  -----------
  Revert "Clear text beneath SIXEL image placements."

This reverts commit 64cea48f915df041503281046ed15638aafa1142.


  Commit: 03efb5e293808ebae346cfc2bb99555592b5ac25
      
https://github.com/tmux/tmux/commit/03efb5e293808ebae346cfc2bb99555592b5ac25
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-kitty.c
    M image.c
    M screen-redraw.c
    M tmux.h

  Log Message:
  -----------
  Preserve text behind transparent Kitty images.


  Commit: d53f8eff9e53a3b7584e38a73938f55e5c0c25cc
      
https://github.com/tmux/tmux/commit/d53f8eff9e53a3b7584e38a73938f55e5c0c25cc
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-kitty.c
    M image-sixel.c
    M image.c
    M tty-term.c

  Log Message:
  -----------
  Add comments to image functions


  Commit: 04644c726741ed92aa8a4282eea4cd78ad7ea77f
      
https://github.com/tmux/tmux/commit/04644c726741ed92aa8a4282eea4cd78ad7ea77f
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-sixel.c

  Log Message:
  -----------
  Comment sixel_from_image().


  Commit: db7ec915eaa6a5c994cdbe1250b7ff467d3f6f43
      
https://github.com/tmux/tmux/commit/db7ec915eaa6a5c994cdbe1250b7ff467d3f6f43
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M tty-features.c

  Log Message:
  -----------
  Do not enable sync for SIXEL


  Commit: 5c9ae058bfd10eb053fc2368428a07109b59583a
      
https://github.com/tmux/tmux/commit/5c9ae058bfd10eb053fc2368428a07109b59583a
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image.c
    M tmux.h
    M tty-draw.c
    M tty.c

  Log Message:
  -----------
  Expose image backend flags


  Commit: 37b71800b59a34a23983dc8a01c524f90f92998e
      
https://github.com/tmux/tmux/commit/37b71800b59a34a23983dc8a01c524f90f92998e
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image.c
    M tmux.h
    M tty-draw.c
    M tty.c

  Log Message:
  -----------
  Move image cell drawing into image.c


  Commit: 48b6641d97209bb1cc3eb39c2790e631daf570d3
      
https://github.com/tmux/tmux/commit/48b6641d97209bb1cc3eb39c2790e631daf570d3
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image.c

  Log Message:
  -----------
  Avoid overflow in image cell size calculation


  Commit: 89a7dcc8ab0878336f319f4c69f97d2a0b7461f5
      
https://github.com/tmux/tmux/commit/89a7dcc8ab0878336f319f4c69f97d2a0b7461f5
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-sixel.c
    M image.c
    M tmux.h

  Log Message:
  -----------
  Shorten image and SIXEL names


  Commit: c1cab6ea34ecb2d76265782406dcb326cedc7947
      
https://github.com/tmux/tmux/commit/c1cab6ea34ecb2d76265782406dcb326cedc7947
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-sixel.c

  Log Message:
  -----------
  More cleanup of "histogram" name.


  Commit: b89f8b062473846e2b6e70e2783996640e82dd7c
      
https://github.com/tmux/tmux/commit/b89f8b062473846e2b6e70e2783996640e82dd7c
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-kitty.c
    M image.c
    M tmux.h

  Log Message:
  -----------
  Update Kitty image names


  Commit: ed63826b151e40c718c8833b97c090d70a5b77f6
      
https://github.com/tmux/tmux/commit/ed63826b151e40c718c8833b97c090d70a5b77f6
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-kitty.c
    M input.c

  Log Message:
  -----------
  Cleanup.


  Commit: 54d3f77c2c938ec0a63e7f40b1563d91a1829f49
      
https://github.com/tmux/tmux/commit/54d3f77c2c938ec0a63e7f40b1563d91a1829f49
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M grid.c
    M image.c
    M screen-write.c
    M tmux.h

  Log Message:
  -----------
  The implementation now distinguishes a newly placed image cell from one later 
overwritten by text. On a SIXEL terminal, damaged cells are omitted from image 
output; on Kitty they remain ordinary positional placements.


  Commit: b6dbf10057236eb8bb840fe1f879b496181cf978
      
https://github.com/tmux/tmux/commit/b6dbf10057236eb8bb840fe1f879b496181cf978
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-sixel.c
    M image.c
    M input.c
    M resize.c
    M screen-redraw.c
    M tmux.h
    M tty-keys.c

  Log Message:
  -----------
  Redraw SIXEL images before or after text depending on which was placed first 
in the cell.


  Commit: cf80845be7426486767f4c8934ad4aa115bca5f9
      
https://github.com/tmux/tmux/commit/cf80845be7426486767f4c8934ad4aa115bca5f9
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-kitty.c
    M image-sixel.c
    M image.c
    M tmux.h

  Log Message:
  -----------
  Change some names of things for clarity.


  Commit: 047308b156190ac037339e29a018ed814b770832
      
https://github.com/tmux/tmux/commit/047308b156190ac037339e29a018ed814b770832
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M grid.c
    M image-kitty.c
    M image-sixel.c
    M image.c
    M input.c
    M regress/image-support.sh
    M screen-redraw.c
    M screen-write.c
    M style.c
    M tmux.h
    M tty-draw.c
    M tty.c
    M window-copy.c

  Log Message:
  -----------
  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.


  Commit: c97ceaffe89b9f9a6fba4efbdb71cd144a8ec4c6
      
https://github.com/tmux/tmux/commit/c97ceaffe89b9f9a6fba4efbdb71cd144a8ec4c6
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M tty.c

  Log Message:
  -----------
  image: select backend after terminal setup


  Commit: c2426fcf083ff8d160bc8f81eadabc7a40f96c34
      
https://github.com/tmux/tmux/commit/c2426fcf083ff8d160bc8f81eadabc7a40f96c34
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-kitty.c
    M image-sixel.c
    M image.c
    M regress/image-support.sh
    M tmux.h

  Log Message:
  -----------
  image: preserve fractional cell extents


  Commit: 4c3983e286a4484eb13a50c3948492f9ae0958ba
      
https://github.com/tmux/tmux/commit/4c3983e286a4484eb13a50c3948492f9ae0958ba
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    A tools/image-edge-test.sh
    A tools/image-visual-test.sh

  Log Message:
  -----------
  image: add manual visual checks


  Commit: 40cd869d770732fb4f7aad705360600ae6dc9b43
      
https://github.com/tmux/tmux/commit/40cd869d770732fb4f7aad705360600ae6dc9b43
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-sixel.c

  Log Message:
  -----------
  Readability and clarity.


  Commit: 45f32d71efd9fa407ff2f81fb0fdf5c27cca6a75
      
https://github.com/tmux/tmux/commit/45f32d71efd9fa407ff2f81fb0fdf5c27cca6a75
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-kitty.c

  Log Message:
  -----------
  Fix indents.


  Commit: c0e38f3748b2162aaa8722d3e55f32f5175a64be
      
https://github.com/tmux/tmux/commit/c0e38f3748b2162aaa8722d3e55f32f5175a64be
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-kitty.c
    M image-sixel.c
    M image.c
    M tmux.h

  Log Message:
  -----------
  Cleanup and simplification.


  Commit: b094564203899688004f7bb1ae81505c0de3f40c
      
https://github.com/tmux/tmux/commit/b094564203899688004f7bb1ae81505c0de3f40c
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M configure.ac

  Log Message:
  -----------
  build: rename image support option


  Commit: a80e2d1af7a49af2767e76467764bf3fdb7de659
      
https://github.com/tmux/tmux/commit/a80e2d1af7a49af2767e76467764bf3fdb7de659
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image-sixel.c

  Log Message:
  -----------
  sixel: preserve image aspect across client geometries

Scale SIXEL rasters uniformly when clients have different cell dimensions, 
while retaining the original logical cell canvas as blank padding.

Map crops using real cell boundaries so partial final cells are not stretched 
or compressed.


  Commit: 56e9ca2dbefabe648037ab469462fde617858be0
      
https://github.com/tmux/tmux/commit/56e9ca2dbefabe648037ab469462fde617858be0
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    A regress/image-floating-content-wipe.sh
    M screen-redraw.c

  Log Message:
  -----------
  screen-redraw: erase only cells a pane owns, not its raw rectangle

image_redraw_start() was called with a pane's full nominal geometry
rather than the cells it actually owns in the current scene. When a
floating pane occluded part of that rectangle, the erase blanked the
floating pane's on-screen content, and the following text redraw
correctly skipped those cells (not owned by this pane), leaving them
blank with nothing to restore them.


  Commit: f42cc5d95612d6f15f78809e5c73a66a2a9a5f42
      
https://github.com/tmux/tmux/commit/f42cc5d95612d6f15f78809e5c73a66a2a9a5f42
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M regress/image-support.sh

  Log Message:
  -----------
  regress: fix contradictory terminal-features assertions in image-support.sh

Three adjacent blocks shared one 'set -as terminal-features' setting
with contradictory requirements - fallback text, then real SIXEL, then
fallback text again in a single client attach. terminal-features is
only detected at client attach, not live, so this needs detach/reattach
between blocks rather than toggling the option in place.


  Commit: e63e4fe0d068e6ef0eca493a594b8f971390eed2
      
https://github.com/tmux/tmux/commit/e63e4fe0d068e6ef0eca493a594b8f971390eed2
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    A regress/image-border-status-wipe.sh

  Log Message:
  -----------
  regress: add failing test for border-status redraw bug

window_make_pane_status() gates physical redraw of border-status text on
a logical content diff, not physical damage - if something else disturbs
those cells, the text stays blank because tmux believes nothing changed.
This test currently fails and is expected to keep failing until the
general damage-tracking redraw work lands (see IMAGE-REDRAW-PLAN.md).


  Commit: ebb44d47157363a113fa437e2c0e0eaf25de610d
      
https://github.com/tmux/tmux/commit/ebb44d47157363a113fa437e2c0e0eaf25de610d
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image.c

  Log Message:
  -----------
  image: report damage narrowly instead of flagging the whole pane for redraw

image_redraw_area() used to unconditionally flag the whole pane
(PANE_REDRAW) whenever any part of it needed an image recomposited - a
pane can be much taller than the area actually disturbed (a small scroll
region, or a single line insert/delete far from where an image sits), so
this erased and retransmitted every image anywhere in the pane regardless
of proximity to the affected area. Report damage for just the area via
redraw_damage_window() instead.

image_redraw_scroll() similarly now scopes to the current scroll region
rather than redrawing the whole pane via image_redraw_all().


  Commit: e40ef98b1ea8b8bfd7152cb55b20cfffc539ec46
      
https://github.com/tmux/tmux/commit/e40ef98b1ea8b8bfd7152cb55b20cfffc539ec46
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image.c
    A regress/image-resize-width-recovery.sh
    M tmux.h
    M window.c

  Log Message:
  -----------
  image: extend existing placements when a pane grows wider

image_write() only ever creates spans for as much of an image as fit in
the pane at the time it was placed - the rest of the image's pixels are
still retained (struct image is immutable and kept for as long as any
placement references it), but nothing revisited that clipping decision,
so a pane that was too narrow when an image was displayed stayed clipped
forever, even after growing wide enough to fit the rest. Unlike height,
which recovers via ordinary scrollback, there is no equivalent "scroll
right" - this is the only way the extra width is ever recovered.

image_grid_resize_width() finds every placement referenced in a grid's
rows, works out how far its spans already reach and its origin column,
and extends them (via a new image_extend_row(), factored out of
image_write()'s own span-building loop) up to whichever is smaller: the
image's own full width or the new pane width. window_pane_resize() calls
it after a pane grows wider.


  Commit: 4e2abff2d67d229c9ef4778924fed3f79b325274
      
https://github.com/tmux/tmux/commit/4e2abff2d67d229c9ef4778924fed3f79b325274
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    A regress/image-selection-noflash.sh
    M window-copy.c

  Log Message:
  -----------
  window-copy: avoid erasing and needlessly re-flashing images during copy-mode 
redraws

window_copy_write_one() used to write text/highlight styling directly
over image-covered cells via the normal path, which - since a character
write typically clears whatever pixel content a terminal was showing
there - erased the image with nothing to redraw it back in. Image-covered
cells now bypass styling and go straight into the grid instead (a
non-graphical client's ASCII fallback for the image still depends on this
same write, so it can't just be skipped).

window_copy_write_line()'s call to image_redraw_area() used to fire
unconditionally on every redraw, needlessly recompositing (and briefly
flashing) the image on every single cursor step even after the erasure
above was fixed, even though nothing about the image had changed. It now
only fires when window_copy_update_image_refresh() (new) determines the
view's underlying history position actually moved since the last redraw.

Also adds window_copy_visible_has_images(), used by a later commit's
scroll-region fix as a bypass to a full redraw when the visible range
carries image data - line insert/delete only shifts character cells, not
already-sent image pixels, so scroll's normal fast path leaves stale or
missing image content behind.


  Commit: 2a535f7d82bccc16121eb0b2df547dcb152ceee0
      
https://github.com/tmux/tmux/commit/2a535f7d82bccc16121eb0b2df547dcb152ceee0
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M image.c
    A regress/image-scroll-off-recovery.sh

  Log Message:
  -----------
  image: keep the scrolled-off portion of a placement instead of discarding it

image_write() handles an image taller than the pane by scrolling the
screen up to make room, but only ever created spans for the rows that
ended up on screen afterwards - the rows immediately scrolled off (up to
origin_y of them) were pushed into history as blank, spanless rows and
that part of the image was permanently discarded. Unlike width, which has
no "scroll right" to recover a permanent clip, height already has
ordinary scrollback, so this was pure waste: scrolling back up just
showed empty space where part of the image used to be.

image_write() now also calls image_extend_row() for those origin_y rows,
capped to however many real history rows screen_write_scrollup() actually
created (it clamps its own request to one scroll-region height per call,
so a single call may not push everywhere origin_y implies - looping it
until the full amount is pushed, done here too, makes that gap rare, but
the cap keeps the fill-in safe even if it isn't).


  Commit: 87400d67b0fc6a28eedad2ef28e237aa19c9a746
      
https://github.com/tmux/tmux/commit/87400d67b0fc6a28eedad2ef28e237aa19c9a746
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M Makefile.am
    A image-fallback.c
    M image.c
    M tmux.1
    M tmux.h
    M tty-acs.c
    M tty-features.c

  Log Message:
  -----------
  Improve image fallback rendering


  Commit: 84a2ccdbcb6bf95117eacd4b4343bbaf2a97d0dc
      
https://github.com/tmux/tmux/commit/84a2ccdbcb6bf95117eacd4b4343bbaf2a97d0dc
  Author: Michael Grant <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M configure.ac

  Log Message:
  -----------
  build: warn that --enable-sixel is deprecated


Compare: https://github.com/tmux/tmux/compare/67f671b345f1...84a2ccdbcb6b

To unsubscribe from these emails, change your notification settings at 
https://github.com/tmux/tmux/settings/notifications

-- 
You received this message because you are subscribed to the Google Groups 
"tmux-git" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion, visit 
https://groups.google.com/d/msgid/tmux-git/tmux/tmux/push/refs/heads/4902-image-support/67f671-84a2cc%40github.com.

Reply via email to