From: Thomas Dickey <dickey@his.com>
To: Alan Mackenzie <acm@muc.de>
Cc: bug-ncurses@gnu.org, emacs-devel@gnu.org
Subject: Re: Emacs difficulties in linux console with ncurses-6.3 caused by kcbt=\E^I.
Date: Thu, 5 May 2022 20:01:02 -0400 [thread overview]
Message-ID: <20220506000102.GA10144@prl-debianold-64.jexium-island.net> (raw)
In-Reply-To: <YnQU2GzFApDG0QWK@ACM>
[-- Attachment #1: Type: text/plain, Size: 4117 bytes --]
On Thu, May 05, 2022 at 06:18:00PM +0000, Alan Mackenzie wrote:
> Hello, ncurses!
>
> I'm writing as a member of the Emacs development team.
>
> In the recent change from ncurses-6.2 to ncurses-6.3, the following
> change was make in the linux console terminfo:
>
> --- Infocmp-linux-6.2 2022-05-04 20:16:01.609557894 +0000
> +++ infocmp-linux-6.3 2022-05-04 20:09:02.046581014 +0000
> @@ -14,7 +14,7 @@
> home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
> ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\n,
> initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x,
> - kb2=\E[G, kbs=^?, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
> + kb2=\E[G, kbs=^?, kcbt=\E^I, kcub1=\E[D, kcud1=\E[B,
> kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\E[[A,
> kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
> kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
>
> We now have kcbt=\E^I.
A bug report got me to verify this, and
shift-tab on the console appeared to send that sequence,
so I documented it in the terminal description.
Tracing changes to default keyboard configuration in Linux isn't
as "simple" as control-sequences, but see below (it's "kbd").
I don't see any that send \E[Z. Having the terminal description
list a key definition that no one uses isn't very useful.
(I'll allow for some keyboard differences -- who has a "clear" key? --
but shift-tab has been used for a long time).
Just to check:
Debian, Fedora, Mageia, OpenSUSE do this (send \E^I)
Arch, Slackware don't do this (I get just ^I)
I have a few others that I could check, but (CentOS and Scientific Linux)
those are either obsolete or derived from the ones that I listed.
I'm aware that there are (down in the 1% range) still other Linux-based
systems, but generally speaking few/none of those have contributed
in this area, so I don't have a machine to verify bug reports.
fwiw, I noticed some comment in the usual source of misinformation
recently stating that \E[Z originated with Linux in 1995.
That was incorrect (the terminal database shows this for several
AT&T entries and an Ann Arbor Ambassador entry - roughly ten
years earlier).
> In Emacs on the Linux console, our use of terminfo now has the effect of
> replacing the M-tab keysequence with backtab. This make several
> important key-bindings unusable. (The backtab binding is also used, but
> is perhaps a little less important.)
Perhaps that original kcbt was changed to allow the \E^I to work
with Emacs. If that's the case, then it should be something that
I can document in the terminal description.
All that I have so far is the commit message, which gives no useful
information regarding the intent of the change:
commit 0baa7f071e79bb700b62b1f8507630387cbc4bbb
Author: Alexey Gladkov <legion@altlinux.org>
Date: Tue May 8 22:55:07 2007 +0400
Apply patchkbd-1.12-Meta-Tab.diff from SUSE
Convert Shift Tab to Meta_Tab
Signed-off-by: Alexey Gladkov <legion@altlinux.org>
and this equally non-informative mailing list thread:
https://lists.opensuse.org/archives/list/commit@lists.opensuse.org/message/P3DQHCZB7IWQ7F6VZD3LGXHVOIN6OFE6/
(which for example doesn't mention Emacs).
> Also, this would seem to be a difficult problem for a normal user to
> diagnose, and difficult also to fix.
>
> May I ask why this change was made to the linux terminal? Is there any
> possibiliy it might be reverted?
It was a bug report:
# 2021-09-04
# + modify linux3.0 entry to reflect default mapping of shift-tab by
# kbd 1.14 (report by Jan Engelhardt) -TD
> Is there perhaps some strategy we could use in Emacs (C code) which would
> work around this problem with using ugly ad-hoc code?
I suppose you could tell Emacs to ignore kcbt (termcap kB) for Linux.
non-Emacs users probably would like to use the key.
--
Thomas E. Dickey <dickey@invisible-island.net>
https://invisible-island.net
ftp://ftp.invisible-island.net
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
next prev parent reply other threads:[~2022-05-06 0:01 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-05 18:18 Emacs difficulties in linux console with ncurses-6.3 caused by kcbt=\E^I Alan Mackenzie
2022-05-06 0:01 ` Thomas Dickey [this message]
2022-05-06 11:26 ` Stefan Monnier
2022-05-06 18:49 ` Alan Mackenzie
2022-05-06 19:14 ` Eli Zaretskii
2022-05-07 10:41 ` Alan Mackenzie
2022-05-07 10:45 ` Eli Zaretskii
2022-05-07 14:35 ` Alan Mackenzie
2022-05-07 15:03 ` Eli Zaretskii
2022-05-07 17:37 ` Alan Mackenzie
2022-05-07 17:55 ` Eli Zaretskii
2022-05-08 23:37 ` Richard Stallman
2022-05-08 12:09 ` Alan Mackenzie
2022-05-08 16:05 ` Thomas Dickey
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220506000102.GA10144@prl-debianold-64.jexium-island.net \
--to=dickey@his.com \
--cc=acm@muc.de \
--cc=bug-ncurses@gnu.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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).