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
 
 - 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 | 
|---|---|---|---|
| ghostty | Y | ||
| iterm2 | Y | Y | |
| kitty | Y | ||
| rio | Y | Y | |
| mintty | Y | Y | |
| mlterm | Y | Y | |
| putty | |||
| rlogin | Y | Y | |
| wezterm | Y | Y | |
| xterm | Y | 
| terminal | response | 
|---|---|
| apple terminal | \x1b[?1;2c | 
| ghostty | \x1b[?62;22c | 
| guake | \x1b[?65;1;9c | 
| iterm2 | \x1b[?62;4c | 
| kitty | \x1b[?62;c | 
| rio | \x1b[?62;4;6;22c | 
| 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 | 
| ghostty | \x1b[>1;10;0c | 
| guake | \x1b[>65;5402;1c | 
| iterm2 | \x1b[>0;95;0c | 
| rio | \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" | 
| ghostty | TERM="xterm-ghostty"                      | 
| rio | TERM="rio"                                | 
| 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/
 

