#+TITLE: kkp.el -- Support for the Kitty Keyboard protocol in Emacs
#+AUTHOR: Benjamin Orthen
#+OPTIONS: ^:{}
[[https://melpa.org/#/kkp][file:https://melpa.org/packages/kkp-badge.svg]]
This package provides support for the [[https://sw.kovidgoyal.net/kitty/keyboard-protocol][Kitty Keyboard Protocol]] (KKP).
KKP defines an alternative way to handle keyboard input for programs running in the terminal.
This allows, if the terminal (and intermediaries such as terminal multiplexers) support the protocol as well,
the transmission of more detailed information about a key event from the terminal to Emacs, e.g., it transmits "" and "C-i" differently.
Currently, there exists another solution which solves the same problem, xterm's "modifyOtherKeys", which is already supported by Emacs (and activated by default if the terminal supports it).
KKP has the advantage of supporting more keys (e.g., "
- It [[https://sw.kovidgoyal.net/kitty/keyboard-protocol/#bugs-in-fixterms][fixes]] some bugs in fixterms.
- It enables runtime opt-in and opt-out of enhancements (e.g., CSI-u encoding).
- It optionally also supports reporting event types or alternate keys.
For a complete list of enhancements, read [[https://sw.kovidgoyal.net/kitty/keyboard-protocol/#progressive-enhancement]].
For Emacs, other enhancements than "Disambiguate escape codes" and "Report alternate keys" do not appear to be relevant.