Hello,

I've made a patch which aims to fix all of the incorrect key mappings
documented in the following table:

https://jakub.horky.net/terminal/keyname.html

The only exception is F13-F19 keys for xterm, WezTerm, and mlterm, as there
is currently no standard way to accommodate both shifted and physical keys
above F12 in terminfo.

Changes:
  + abandon incorrect vt100+keypad mappings for ka1-kc3 ("cross") keypad
    keys
  + since VT100 and VT220 have exactly the same numeric keypad and its
    sequences, unify vt100+keypad and vt220+keypad, and rename references
    from vt220+keypad to vt100+keypad
  + add kpCMA, kpDOT, kpSUB, and kpZRO to vt100+keypad; also add
    vt100+keypad+emul to emulate PF1-PF4 on top row of the keypad
  + correct xterm+keypad keys when in non-sunKeyboard mode
  + add kbeg, kp5 keys to xterm+noapp
  + add kmnu including shifted variants to xterm+nofkeys
  + add support for shifted keypad keys as xterm+pck0
  + modify xterm+keypad and add xterm+keypad+noent to serve as a common
    key set for other terminals; add xterm+keypad+all and
    xterm+keypad+novt for full-featured xterm and fix xterm-vt220
  + remove ACS support from putty as it isn't supported by default and
    move it to putty-noutf, as it is supported in non-UTF-8 mode
  + remove ncv from putty, since color support doesn't affect the features
  + add kbeg, kENT and kPADD (shift+kpADD) keys to putty
  + add putty-xterm as the richest variant in terms of modified keys
  + add -direct and -direct16 for putty, putty-xterm, and wezterm
  + fix teraterm-4.97, which no longer emulates VT220 editing keys
    based on their physical locations
  + add support for xterm shifted keys to winconsole, fix kbs and kspd
  + set numpad 5 to kbeg instead of kb5 in linux-basic, matching xterm
  + set kspd (suspend key) to the Pause key instead of ^Z in linux-basic
  + remove unsupported keypad app mode from nsterm-7 and xnuppc-basic
  + add xterm-style keypad app mode to iTerm.app, mlterm3, and st
  + add kbeg key to konsole-base
  + add kmnu key to mlterm2+
  + remove ka1-kc3 and kent keys, and add kbeg key to st
  + remove VT100 keypad support (except PF1-PF4) from xtalk and mvterm,
    since they don't support application keypad mode
  + add full VT100 keypad support to wy85-8bit and tek4105-30, as they
    support application keypad mode

I tested the changes live in all terminals listed in the table.

This patch supersedes my previous patch from 2025-08-31. There are
significantly more changes in this version (and unlike the earlier one, it
omits the previously proposed support for the linux keypad and cursor
application modes, as I’ve come to the conclusion that these modes should
not be enabled by default).

Jakub

---
 misc/terminfo.src | 415 +++++++++++++++++++++++++++++-----------------
 1 file changed, 267 insertions(+), 148 deletions(-)

Attachment: 0001-Fix-various-incorrect-key-mappings-in-terminfo.src.patch
Description: Binary data

Reply via email to