Encodes images to iTerm / Kitty / SIXEL (terminal) inline graphics protocols.
- Kitty
- iTerm2 / WezTerm
- Sixel
- mintty:
- detection for iTerm format: mintty/mintty#881
- iTerm2:
- support: name, width, height, preserveAspectRatio options
- Kitty:
- support animation
- support image placement /dims
- perhaps query tmux directly: TMUX=/tmp/tmux-1000/default,3218,4
- improve terminal identification 19:VT340 ESC[>0c = 19;344:0c https://invisible-island.net/xterm/ctlseqs/ctlseqs-contents.html
- test sixel with
- test wez/iterm img with
- iterm2
- https://www.macterm.net/
terminal | sixel | iTerm2 format | kitty format |
---|---|---|---|
iterm2 | Y | Y | |
kitty | Y | ||
mintty | Y | Y | |
mlterm | Y | Y | |
putty | |||
rlogin | Y | Y | |
wezterm | Y | Y | |
xterm | Y |
terminal | response |
---|---|
apple terminal | \x1b[?1;2c |
guake | \x1b[?65;1;9c |
iterm2 | \x1b[?62;4c |
kitty | \x1b[?62;c |
mintty | \x1b[?64;1;2;4;6;9;15;21;22;28;29c |
mlterm | \x1b[?63;1;2;3;4;7;29c |
putty | \x1b[?6c |
rlogin | \x1b[?65;1;2;3;4;6;7;8;9;15;18;21;22;29;39;42;44c |
st | \x1b[?6c |
terminology | \x1b[?64;1;9;15;18;21;22c |
vimterm | \x1b[?1;2c |
wez | \x1b[?65;4;6;18;22c |
xfce | \x1b[?65;1;9c |
xterm | \x1b[?63;1;2;4;6;9;15;22c |
terminal | response |
---|---|
apple terminal | \x1b[>1;95;0c |
guake | \x1b[>65;5402;1c |
iterm2 | \x1b[>0;95;0c |
kitty | \x1b[>1;4000;19c |
mintty | \x1b[>77;30104;0c |
mlterm | \x1b[>24;279;0c |
putty | \x1b[>0;136;0c |
rlogin | \x1b[>65;331;0c |
st | NO RESPONSE |
vimterm | \x1b[>0;100;0c |
wez | \x1b[>0;0;0c |
xfce | \x1b[>65;5402;1c |
xterm | \x1b[>19;344;0c |
terminal | values |
---|---|
apple terminal | TERM_PROGRAM="Apple_Terminal" |
apple terminal | __CFBundleIdentifier="com.apple.Terminal" |
guake | |
iterm2 | LC_TERMINAL="iTerm2" |
kitty | TERM="xterm-kitty" |
mintty | TERM="mintty" |
mlterm | |
putty | |
rlogin | |
st | |
terminology | TERM_PROGRAM=terminology |
vimterm | VIM_TERMINAL is set |
wez | TERM_PROGRAM="wezterm" |
xfce | |
xterm | |
- Sixel is a primitive and wasteful format. Most sixel terminals also support the iTerm2 format--fewer bytes, full color instead of paletted, and no pixel re-processing required. Much better!
go tool pprof -http=:8080 ./name.prof
godoc -http=:8099 -goroot="$HOME/go"
go test -v
go mod tidy
https://blog.golang.org/pprof
- kitty inline images: https://sw.kovidgoyal.net/kitty/graphics-protocol.html
- iterm2 inline images: https://iterm2.com/documentation-images.html
- xterm ctl seqs: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
- sixel ctl seqs: https://vt100.net/docs/vt3xx-gp/chapter14.html
- libsixel: https://saitoha.github.io/libsixel/