diff options
| author | cashmere <cashmere@autistici.org> | 2026-04-26 21:14:50 +0200 |
|---|---|---|
| committer | cashmere <cashmere@autistici.org> | 2026-04-26 21:14:50 +0200 |
| commit | b4e12512a0db4ce8823e2265faf020bb222875a7 (patch) | |
| tree | 34330b69a718dfd2e4035462235fac5b78db49c7 /CHANGELOG.org | |
| parent | bcf54dda11f333b217443747f865c803dd7e489d (diff) | |
| download | kitty-graphics-b4e12512a0db4ce8823e2265faf020bb222875a7.tar.gz | |
feat(tmux): unlock Sixel backend inside tmux >= 3.4
Sixel detection used to hard-disable the moment `$TMUX' was set. That
guard predates tmux 3.4 (released 2024-02-13), which ships native Sixel
rendering, so we were rejecting a working configuration. Drop the hard
guard, gate on a parsed `tmux -V' >= 3.4, and let users opt out via a
new custom var.
- `kitty-gfx-tmux-allow-sixel' (default t). Set to nil if your tmux
build lacks `--enable-sixel' or if you want to avoid the upstream
scroll artifact (tmux's cell buffer is not pixel-aware, so images may
persist after scrolling).
- `kitty-gfx--tmux-version' parses `tmux -V' once per session and
caches the result in `kitty-gfx--tmux-version-cache' (with an
`unset' sentinel so we can distinguish "not probed" from "no tmux").
- `kitty-gfx--tmux-sixel-supported-p' centralises the (in-tmux + opt-in
+ version >= 3.4) check.
- `kitty-gfx--sixel-detect' now uses the helper instead of
`(not in-tmux)'. Debug log gained `tmux-ver=' and `tmux-ok='.
- AGENTS.md / README.org / CHANGELOG.org: limitation reworded from
"no tmux support" to a partial entry that explains exactly what works
and what the remaining caveats are (Kitty APC passthrough is still
unimplemented; scroll artifacts are upstream).
- justfile: new `test-sixel-tmux' recipe wraps `test-sixel-image' in
`tmux new-session' for one-command interactive verification, and
the sibling `test-sixel-image' recipe was switched from a fragile
shell conditional to an elisp `when' so passing an encoder argument
no longer breaks the parse.
Refs #2.
Diffstat (limited to 'CHANGELOG.org')
| -rw-r--r-- | CHANGELOG.org | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/CHANGELOG.org b/CHANGELOG.org index 837968e..82e8c5b 100644 --- a/CHANGELOG.org +++ b/CHANGELOG.org @@ -51,9 +51,11 @@ I will keep on improving this feature. I think it is actually great eyecandy, an **** tmux support -tmux support is next. It already supports sixel, so the sixel backend will work there out of the box. +The Sixel side is now unlocked: starting in =0.5.0=, =kitty-graphics= no longer hard-disables the Sixel backend when =$TMUX= is set. tmux 3.4 (released 2024-02-13) ships native Sixel rendering, so running Emacs inside =tmux new-session= under foot/Konsole/mintty/mlterm/WezTerm just works. The detector probes =tmux -V= once per session and only engages on tmux >= 3.4. A new option =kitty-gfx-tmux-allow-sixel= (default =t=) lets you opt out if your tmux build lacks =--enable-sixel=. -There is also an in-progress branch adding [[https://github.com/tmux/tmux/tree/ta/kitty-img][kitty image protocol support to tmux]]. If you already use Kitty directly, though, I would stick with it. The kitty protocol gives you stateful image management, truecolor rendering, and a smoother overall experience. +Caveat: tmux's cell buffer is not pixel-aware, so images may stick to their old position after scrolling until the affected cells are overwritten. That is an upstream tmux limitation, not something this package can fix. + +The Kitty graphics protocol still does not work inside tmux because we do not yet wrap APC sequences with the =\ePtmux;...\e\\= passthrough envelope. There is also an in-progress branch adding [[https://github.com/tmux/tmux/tree/ta/kitty-img][native Kitty image protocol support to tmux]]. Until either lands, if you already use Kitty directly I would stick with it -- the Kitty protocol gives you stateful image management, truecolor rendering, and a smoother overall experience. **** Package renaming? |
