all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: George Nachman <gnachman@llamas.org>
To: Daniel Colascione <dancol@dancol.org>
Cc: emacs-devel@gnu.org
Subject: Re: What capabilities do you wish terminal emulators would report?
Date: Fri, 8 May 2020 13:51:39 -0700	[thread overview]
Message-ID: <CAB5Rqo=CA_JwG13n3rNVdnFo7G9G2OdfdF8Jz1oKqqzFhbFNZQ@mail.gmail.com> (raw)
In-Reply-To: <68b67ab2-dddc-aa07-d946-6fb1b3f4f742@dancol.org>

[-- Attachment #1: Type: text/plain, Size: 4119 bytes --]

I'm responding to all the messages so far in one email to keep the volume
down:

> Support for bidi reordering seems to be missing.

This is a very good suggestion. Added.

> The "emacs" column seems to be empty, is that on purpose?

The purpose of this thread is to add some checkmarks there.

> I think more that "which capabilities should be reported", I'd first
focus on a standard way to enable/disable and query (both presence and
activation status) capabilities.
> E.g. it should be safe to enable or disable *any* capability, supported
or not.

Creating a standard set of extensions to DECSET and DECRQM is interesting,
and something I'd like to explore, but it's orthogonal to the goals of this
project. I really want to stay focused because there's already been a year
of bikeshedding leading up to this point. I'm laser focused on shipping
something useful to start mitigating the brokenness of $TERM.

> From where I stand, environment variables are the last resort since they
may get lost along the way or may be inherited unwittingly from elsewhere.

Yeah, they're not ideal. It's a useful optimization for something like a
shell script. I expect a full fledged program like emacs would use a
control sequence requesting a feature report. It's slower than an
environment variable but at least it's accurate.

> I wrote about this issue a little while ago:
https://www.facebook.com/notes/daniel-colascione/term-is-terminally-broken/10154219967001102/

> Using an environment variable might be fine so long as it's *one*
environment variable, minimizing the pain of transition. But there are
zillions of scripts and daemons out there that special-case TERM. (For
example, sudo often puts TERM on an environment variable preservation
whitelist.) It'd probably be easier to make a new special TERM variable
that means "I support introspection and also speak xtermeese".

terminfo is useful as a baseline, but it's impossible to propagate changes
in a timely manner. The goal of my project is to fill in the gaps that
terminfo leaves, so you can adopt this new info gradually to get wins where
it's available. I expect it would be one variable. Something like
TERM_FEATURES="xxx" where xxx is a compact encoding of the feature flags.
Advertising that you support introspection is a chicken-and-egg problem. I
expect the best option is to request a feature report and then send CSI c
(or some other reporting control sequence), and see if you get one report
back or two.


On Fri, May 8, 2020 at 11:29 AM Daniel Colascione <dancol@dancol.org> wrote:

> On 5/8/20 12:34 AM, George Nachman wrote:
> > Some terminal emulator authors (VTE, xterm, tmux, mintty, libvterm,
> > iTerm2, and others) are discussing building a new mechanism for
> > reporting capabilities. For context:
> > https://github.com/mintty/mintty/issues/881
>
> Hallelujah.
>
> > My goal is to collect desires from developers of popular applications.
> > What capabilities do you wish you could discover about terminals that
> > you don't already get from terminfo?
> >
> > For example, being able to detect 24-bit color support, available cursor
> > styles, bracketed paste support, and mouse reporting modes are the kinds
> > of capabilities that would be included.
>
> I wrote about this issue a little while ago:
>
> https://www.facebook.com/notes/daniel-colascione/term-is-terminally-broken/10154219967001102/
>
> Using an environment variable might be fine so long as it's *one*
> environment variable, minimizing the pain of transition. But there are
> zillions of scripts and daemons out there that special-case TERM. (For
> example, sudo often puts TERM on an environment variable preservation
> whitelist.) It'd probably be easier to make a new special TERM variable
> that means "I support introspection and also speak xtermeese".
>
> > They would likely be exposed
> > through a combination of a new environment variable and a
> > to-be-determined control sequence that reports them.
>
> Kitty's mechanism for explicitly setting character-cell properties would
> be great to discover too --- it's a much better alternative to BCE.
>

[-- Attachment #2: Type: text/html, Size: 5566 bytes --]

  reply	other threads:[~2020-05-08 20:51 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-08  7:34 What capabilities do you wish terminal emulators would report? George Nachman
2020-05-08 10:20 ` Eli Zaretskii
2020-05-08 14:30 ` Eli Zaretskii
2020-05-08 15:25 ` Stefan Monnier
2020-05-08 18:29 ` Daniel Colascione
2020-05-08 20:51   ` George Nachman [this message]
2020-05-09  6:09     ` Eli Zaretskii
2020-05-09 19:41       ` George Nachman
2020-05-15 11:19         ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAB5Rqo=CA_JwG13n3rNVdnFo7G9G2OdfdF8Jz1oKqqzFhbFNZQ@mail.gmail.com' \
    --to=gnachman@llamas.org \
    --cc=dancol@dancol.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.