Check out my first novel, midnight's simulacra!
Terminfo: Difference between revisions
From dankwiki
No edit summary |
No edit summary |
||
Line 6: | Line 6: | ||
* Precise mechanisms of <tt>setaf</tt>/<tt>setbf</tt> and interactions with palette-indexed color | * Precise mechanisms of <tt>setaf</tt>/<tt>setbf</tt> and interactions with palette-indexed color | ||
* Whether ANSI 39 "Default foreground color" / ANSI 49 "Default background color" can be used distinctly (you just get <tt>op</tt>, often defined as <tt>op=\E[39;49m</tt> | * Whether ANSI 39 "Default foreground color" / ANSI 49 "Default background color" can be used distinctly (you just get <tt>op</tt>, often defined as <tt>op=\E[39;49m</tt>) | ||
* Strikethrough (<tt>sgr</tt> 9) | * Strikethrough (<tt>sgr</tt> 9) | ||
* Kitty's [https://github.com/kovidgoyal/kitty/issues/3185 weird replacement of RGB matching the default background color] | * Kitty's [https://github.com/kovidgoyal/kitty/issues/3185 weird replacement of RGB matching the default background color] |
Revision as of 00:31, 4 July 2021
libterminfo provides something of an abstraction layer over various terminals; its support for old physical terminals is especially rich and essential. Some will tell you that the introduction of the ANSI standards have rendered terminfo unnecessary; they lie. With that said, it is not perfect, nor complete.
As author of Notcurses, I humbly beseech terminal creators: please, please, please keep your terminfo database up-to-date, and expose capabilities there!
Terminal differences that aren't really handled in terminfo include:
- Precise mechanisms of setaf/setbf and interactions with palette-indexed color
- Whether ANSI 39 "Default foreground color" / ANSI 49 "Default background color" can be used distinctly (you just get op, often defined as op=\E[39;49m)
- Strikethrough (sgr 9)
- Kitty's weird replacement of RGB matching the default background color
- Ordering of x/y coordinates when retrieving cursor location (this might be u6?)
Desired additions
- A string which can match the terminal's reply to XTVERSION, to test whether we've got a terminfo database which doesn't correspond to the terminal we're actually using.
- RGB default background discovery query
- Individual enable/disable for each style. In particular, the ANSI CSI 22 m escape that disables bold/dim ought have a terminfo entry.
- XTPOPCOLORS/XTPUSHCOLORS
- An abstraction over DECSDM
Community extensions
These capabilities are not described in the most recent terminfo man page at the time of this writing, but are more or less widespread.
- smxx/rmxx begin and end strikeout mode (terminfo has os, a boolean capability indicating that the terminal supports strikeout)
- Smulx/rmulx begin and end extended underline mode (supports multiple underline forms)
- Su scrolls up some number of lines
- Sync Synchronized Update Mode (currently discovered via $2026 query) header and footer
- \E[?2026%?%p1%{1}%-%tl%eh