[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: terminfo entry for wezterm doesn't match upstream
From: |
Thomas Dickey |
Subject: |
Re: terminfo entry for wezterm doesn't match upstream |
Date: |
Sun, 28 Jul 2024 16:55:21 -0400 |
On Fri, Jul 26, 2024 at 02:58:31PM -0400, Thomas Dickey wrote:
> On Fri, Jul 26, 2024 at 02:35:05AM -0600, Thayne McCombs wrote:
> > $ infocmp -d -A /usr/share/terminfo -B ~/.terminfo wezterm
> > > comparing wezterm to wezterm.
> > > comparing booleans.
> > > hs: F:T.
> > > km: F:T.
> > > xenl: F:T.
> > > comparing numbers.
> > > pairs: 65536, 32767.
> > > comparing strings.
wezterm doesn't support private mode 12
> > > cvvis: NULL, '\E[?12;25h'.
> > > dsl: NULL, '\E]2;\E\\'.
> > > fsl: NULL, '\E\\'.
These (in wezterm's terminfo) are all errors, because wezterm
does not support the related feature.
> > > ka1: '\EOw', NULL.
> > > ka3: '\EOy', NULL.
> > > kb2: '\EOu', '\EOE'.
> > > kbeg: '\EOE', NULL.
> > > kc1: '\EOq', NULL.
> > > kc3: '\EOs', NULL.
> > > mgc: '\E[?69l', NULL.
> > > nel: '\EE', NULL.
ditto
> > > rmkx: '\E[?1l', '\E[?1l\E>'.
> > > rmm: NULL, '\E[?1034l'.
> > > smglp: '\E[?69h\E[%i%p1%ds', NULL.
> > > smglr: '\E[?69h\E[%i%p1%d;%p2%ds', NULL.
> > > smgrp: '\E[?69h\E[%i;%p1%ds', NULL.
ditto
> > > smkx: '\E[?1h', '\E[?1h\E='.
ditto
> > > smm: NULL, '\E[?1034h'.
> > > tsl: NULL, '\E]0;'..
> > >
> >
> > I'm not sure about the significance of the other fields that differ, but by
> > doing a bisect on the diffs, I discovered that the difference that causes
> > the scrolling bug with neovim windows is caused by the `smglp` and `smgrp`.
> >
> > So I suspect it should include `smglp@, smgrp@`?
>
> no - the entire feature for left/right margins should be removed until
> there's a widely-used stable version of wezterm which fully supports
> the feature, so that end users won't be affected.
offhand, that's all of the lines with "69".
It's a feature which is older than wezterm:
# Left/right margins are supported in xterm since patch #279 (2012/05/10)
vt420+lrmm|VT420 left/right margins,
mgc=\E[?69l, smglp=\E[?69h\E[%i%p1%ds,
smglr=\E[?69h\E[%i%p1%d;%p2%ds,
smgrp=\E[?69h\E[%i;%p1%ds,
> > It also looks like the upstream wezterm.terminfo uses several "user defined"
> > capabilities. I'm not sure what ncurses policy is on using those, or what,
> > if anything, consumes those.
>
> it's in the FAQ
>
> https://invisible-island.net/ncurses/ncurses.faq.html#dbupdate
...but since the wezterm FAQ states that
What to set the TERM environment variable to. The default is
xterm-256color, which should provide a good level of feature support
without requiring the installation of additional terminfo data.
wezterm's users will find problems.
fwiw, here's my current version of "wezterm" (which omits some more features
which it does not support - ymmv):
wezterm|Wez's Terminal Emulator,
am, bce, km, mir, msgr, npc, xenl,
acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, bold=\E[1m, cr=\r, cub1=^H, cud1=\n, ech=\E[%p1%dX,
el1=\E[1K, flash=\E[?5h$<100/>\E[?5l, ind=\n,
is2=\E[!p\E[?3;4l\E[4l\E>, kbs=^?, kcbt=\E[Z, kend=\EOF,
op=\E[39;49m, ri=\EM, rmacs=\E(B, rmam=\E[?7l,
rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
rs1=\Ec\E]104\007, rs2=\E[!p\E[?3;4l\E[4l\E>,
sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;
%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smkx=\E[?1h\E=,
u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?%[;0123456789]c,
u9=\E[c, Smol=\E[53m, Smulx=\E[4:%p1%dm,
xr=\EP>\\|WezTerm\\([1-9][0-9-]+\\)\E\\\\,
use=ansi+apparrows, use=ansi+csr, use=ansi+cup,
use=ansi+erase, use=ansi+idc, use=ansi+idl,
use=ansi+inittabs, use=ansi+local, use=ansi+rca2,
use=ansi+rep, use=ansi+sgrdim, use=bracketed+paste,
use=ecma+index, use=ecma+italics, use=ecma+strikeout,
use=report+version, use=vt220+cvis,
use=xterm+256color2, use=xterm+alt1049,
use=xterm+focus, use=xterm+pcc2, use=xterm+pce2,
use=xterm+pcf2, use=xterm+sl-alt, use=xterm+sm+1006,
use=xterm+tmux,
--
Thomas E. Dickey <dickey@invisible-island.net>
https://invisible-island.net
signature.asc
Description: PGP signature