Here's an example. sr.ht is setting the TERM=xterm-256color
, but not being able to support all of the things that implies:
https://builds.sr.ht/~andrewrk/job/116323
You can see that it's not honoring the escape codes to move the cursor, but it is honoring the escape codes to render color. I believe the TERM environment variable is incorrect; in this case it should either set TERM=dumb
, indicating no escape codes are possible, or find or invent some new standard value for this which indicates colors are possible but moving the cursor is not possible.
Another solution would be to implement cursor movement terminal escape codes in builds.sr.ht.
TERM=dumb-emacs-ansi
is the best match I could find in my ncurses package; though that's only 8 colour, not 256.So you might be better off creating your own terminfo file for whatever your GUI supports rendering. You could set the env var
TERMINFO
to a bind-mounted folder or temporary folder containing your definitions.Playback with something like asciinema would be an interesting alternative.
Writing a terminfo file is probably the right call, but installing it into every build image will be a bit of a task.