Kitty graphics fail in Zellij with explicit placement IDs
Kitty graphics fail in Zellij when an image is uploaded with a=t and then displayed with separate a=p commands carrying explicit placement IDs.
The same sequence works in Kitty: it displays a 2x2 image, moves a placement when the same (image ID, placement ID) pair is reused, and removes a placement with a=d,d=i. In Zellij, the placements are not rendered or updated correctly.
I'm aware that https://github.com/zellij-org/zellij/pull/5428 mentioned Unicode placeholders are not supported at the moment, but Kitty placements are separate features and can be used without Unicode placeholders - the repro below sends no U=1, nor write Unicode placeholder chars at all, and it only tests regular Kitty image placements with explicit IDs.
Repro
Run this directly in Kitty, then run it from a pane inside Zellij:
#!/bin/sh
payload=/wAAAP8AAAD/////
place() {
printf '\033[%s;%sH\033_Gq=2,a=p,i=42,p=%s,x=%s,y=%s,w=1,h=1,c=1,r=1,z=-1,C=1\033\\' \
"$1" "$2" "$3" "$4" "$5"
}
# 2x2 RGB image: red, green, blue, white
printf '\033_Gq=2,a=t,i=42,f=24,s=2,v=2,m=0;%s\033\\' "$payload"
place 1 1 1 0 0
place 1 2 2 1 0
place 2 1 3 0 1
place 2 2 4 1 1
sleep 2
# Reuse placement ID 1 at a new position
place 4 4 1 0 0
sleep 2
# Delete placement ID 2
printf '\033_Gq=2,a=d,d=i,i=42,p=2\033\\'Expected
- 4 colored cells appear
- placement
p=1moves to row 4, column 4 - placement
p=2disappears
Actual
The placements are not displayed or updated as expected.
Environment
- Zellij 0.45.1
- Kitty 0.48.2
Source: zellij-org/zellij