From 160fbd2071fe797289259436f9d20e2beba76b6e Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 5 Nov 2018 08:11:35 +0530 Subject: [PATCH] Add a terminfo entry for full keyboard mode Fixes #1122 --- docs/changelog.rst | 2 ++ docs/protocol-extensions.rst | 2 ++ kitty/terminfo.py | 6 +++++- terminfo/78/xterm-kitty | Bin 1974 -> 1986 bytes terminfo/kitty.terminfo | 1 + terminfo/x/xterm-kitty | Bin 1974 -> 1986 bytes 6 files changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index f1dfa1dbd..4cfa037c5 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -71,6 +71,8 @@ Changelog - Fix :kbd:`ctrl+shift+special` key not working in normal and application keyboard modes (:iss:`1114`) +- Add a terminfo entry for full keyboard mode. + 0.12.3 [2018-09-29] ------------------------------ diff --git a/docs/protocol-extensions.rst b/docs/protocol-extensions.rst index 1163299a8..dea6c38ad 100644 --- a/docs/protocol-extensions.rst +++ b/docs/protocol-extensions.rst @@ -141,6 +141,8 @@ For example:: This encoding means each key event is represented by 8 or 9 printable ascii only bytes, for maximum robustness. +Support for this mode is indicated by the ``fullkbd`` boolean capability +in the terminfo database, in case querying for it via DECQRM is inconvenient. .. _ext_styles: diff --git a/kitty/terminfo.py b/kitty/terminfo.py index eb9ae900c..a3cbff285 100644 --- a/kitty/terminfo.py +++ b/kitty/terminfo.py @@ -37,6 +37,10 @@ bool_capabilities = { # described at: # https://github.com/kovidgoyal/kitty/blob/master/protocol-extensions.asciidoc 'Su', + # Indicates support for full keyboard mode (non-standard) as + # described at: + # https://github.com/kovidgoyal/kitty/blob/master/protocol-extensions.asciidoc + 'fullkbd', # The following are entries that we don't use # # background color erase @@ -432,7 +436,7 @@ termcap_aliases.update({ queryable_capabilities = numeric_capabilities.copy() queryable_capabilities.update(string_capabilities) extra = (bool_capabilities | numeric_capabilities.keys() | string_capabilities.keys()) - set(termcap_aliases.values()) -no_termcap_for = frozenset('Su Tc setrgbf setrgbb'.split()) +no_termcap_for = frozenset('Su Tc setrgbf setrgbb fullkbd'.split()) if extra - no_termcap_for: raise Exception('Termcap aliases not complete, missing: {}'.format(extra - no_termcap_for)) del extra diff --git a/terminfo/78/xterm-kitty b/terminfo/78/xterm-kitty index 08d300ecb2694e88ef3d0ac3fd2dfd75b1c06699..ea4a1ee0dfc07021d7a16dca20aa14cbeb5e9a85 100644 GIT binary patch delta 64 zcmdnSe~5oW2)i^h0|NsS13N=E10y2?gA|a*4CL`m&S$q4C{8UYN>55+fY50S0Ox)R AY5)KL diff --git a/terminfo/kitty.terminfo b/terminfo/kitty.terminfo index b5f2fb1d3..8e6dad247 100644 --- a/terminfo/kitty.terminfo +++ b/terminfo/kitty.terminfo @@ -3,6 +3,7 @@ xterm-kitty|KovIdTTY, Tc, am, ccc, + fullkbd, hs, km, mc5i, diff --git a/terminfo/x/xterm-kitty b/terminfo/x/xterm-kitty index 08d300ecb2694e88ef3d0ac3fd2dfd75b1c06699..ea4a1ee0dfc07021d7a16dca20aa14cbeb5e9a85 100644 GIT binary patch delta 64 zcmdnSe~5oW2)i^h0|NsS13N=E10y2?gA|a*4CL`m&S$q4C{8UYN>55+fY50S0Ox)R AY5)KL