I use similar scripts from google's hterm project; to the extent that hterm
is "iterm2 compatible" maybe they will work for you. I adapted them to
support screen for the terminal graphics device in R. IIRC the scripts have
a tweak to work with screen's buffer size for escaped data.

https://chromium.googlesource.com/apps/libapps/+/master/hterm/etc/

On Thu, Aug 31, 2023 at 11:25 PM Pier Giuseppe Fogli <
piergiuseppe.fo...@cmcc.it> wrote:

> Hi,
> I'd like to be able to use the imgcat shell script from inside GNU screen
> in order to display images from remote hosts.
> imgcat (https://iterm2.com/utilities/imgcat) is part of a collection of
> shell scripts that make use of iTerm2 image display capabilities,
> here the related documentation:
> https://iterm2.com/documentation-images.html
>
> It works outside GNU screen. From inside it generate a stream of
> base 64 encoded text on the terminal.
> I guess the problem here is to escape this stream from GNU screen
> interpretation in some way, and let it be interpreted by the terminal
> emulator.
> According to the imgcat script it should be handled by this function:
>
> # tmux requires unrecognized OSC sequences to be wrapped with DCS tmux;
> # <sequence> ST, and for all ESCs in <sequence> to be replaced with ESC
> ESC. It
> # only accepts ESC backslash for ST. We use TERM instead of TMUX because
> TERM
> # gets passed through ssh.
> function print_osc() {
>     if [[ $TERM == screen* || $TERM == tmux* ]]; then
>         printf "\033Ptmux;\033\033]"
>     else
>         printf "\033]"
>     fi
> }
>
> but it doesn't and I can't figure out how to fix it.
> Any idea?
>
> Thanks in advance,
> PGF
>

Reply via email to