Specifically, relevant primary and reputable sources might include the ECMA-48 standard[1] (supposedly identical to the withdrawn ANSI one), the manuals for the various DEC VT-series terminals[2], the XTerm documentation already mentioned here[3], the detailed description of the VT100 state machine including how it fills the holes in the ECMA/ANSI spec[4], and maybe some compatibility tables[5]. There’s also a lot of folk wisdom beyond that, apparently, but nobody seems to have really gathered it in a usable form.
There is a Terminals WG over at the XDG[6], but I don’t know if they have produced anything useful yet.
FWIW, in a low-level cross-terminal API, I made up some concepts that seemed helpful (and there are also a few comments scattered in there, such as hints about why key mapping is less consistent than one would've guessed): https://www.neilvandyke.org/racket/charterm/#%28part._.Termi...
When discussing the possibility of implementing double width or height on VTE, someone did exactly that to finally settle how things behave. IIRC the same approach was used to find out what’s the “correct” way to do sixel graphics.
Comments
Specifically, relevant primary and reputable sources might include the ECMA-48 standard[1] (supposedly identical to the withdrawn ANSI one), the manuals for the various DEC VT-series terminals[2], the XTerm documentation already mentioned here[3], the detailed description of the VT100 state machine including how it fills the holes in the ECMA/ANSI spec[4], and maybe some compatibility tables[5]. There’s also a lot of folk wisdom beyond that, apparently, but nobody seems to have really gathered it in a usable form.
There is a Terminals WG over at the XDG[6], but I don’t know if they have produced anything useful yet.
[1]: https://www.ecma-international.org/publications-and-standard... [2]: https://vt100.net/ [3]: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html [4]: https://vt100.net/emu/dec_ansi_parser [5]: https://terminalguide.namepad.de/ [6]: https://gitlab.freedesktop.org/terminal-wg
(ETA: another commenter also recommends https://bjh21.me.uk/all-escapes/all-escapes.xhtml)
Exactly, and those links you gave are invaluable. I have an overlapping list at: https://www.neilvandyke.org/racket/charterm/#%28part._.Refer...
FWIW, in a low-level cross-terminal API, I made up some concepts that seemed helpful (and there are also a few comments scattered in there, such as hints about why key mapping is less consistent than one would've guessed): https://www.neilvandyke.org/racket/charterm/#%28part._.Termi...
You can also emulate a VT terminal using MAME. I’d say that’s the next best thing if you don’t have functioning metal.
Excellent idea. I didn't think of that when I was working on that library.
When discussing the possibility of implementing double width or height on VTE, someone did exactly that to finally settle how things behave. IIRC the same approach was used to find out what’s the “correct” way to do sixel graphics.