Bug 435975

Summary: Implement fixterms
Product: [Applications] konsole Reporter: ariasuni <aria>
Component: keyboardAssignee: Konsole Developer <konsole-devel>
Status: REPORTED ---    
Severity: normal CC: unxed
Priority: NOR    
Version: master   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:

Description ariasuni 2021-04-20 20:48:58 UTC
SUMMARY
Some terminals started implementing fixterms. Kitty implemented a slightly different who apparently fixes some problems with fixterms in 2012.

According to fixterms’ website:

> Keyboard input on Terminals has many deficiencies to it. I want them all
> fixed. I have a plan on how to do it but it Needs Your Help

Neovim implemented the protocol in 2015 by using libtickit:
https://github.com/neovim/neovim/issues/176#issuecomment-77786940

fixterms: http://www.leonerd.org.uk/hacks/fixterms/
kitty’s new keyboard protocol: https://sw.kovidgoyal.net/kitty/keyboard-protocol.html

SOFTWARE/OS VERSIONS
Operating System: Arch Linux
KDE Plasma Version: 5.21.4
KDE Frameworks Version: 5.81.0
Qt Version: 5.15.2
Comment 1 ariasuni 2021-04-20 20:49:59 UTC
Sorry I hit enter too early, I meant:
Kitty implemented in *2021* a slightly different *version* who apparently fixes some problems with fixterms.
Comment 2 ariasuni 2021-04-20 21:15:37 UTC
Also see this comment about the «state of the art» of terminals:

https://github.com/mawww/kakoune/issues/2554#issuecomment-436300959
Comment 3 unxed 2023-04-06 10:13:51 UTC
There are also at least three other protocols for "raw keyboard" input in terminals.

iTerm2 protocol
https://gitlab.com/gnachman/iterm2/-/issues/7440#note_129307021

Windows Terminal's "win32-input-mode"
https://github.com/microsoft/terminal/pull/6309

far2l terminal extensions
https://github.com/elfmz/far2l/blob/master/WinPort/FarTTY.h

The only one of them that already have some support in apps is far2l's one (apps supporting it are "turbo" text editor, "putty4far2l" putty fork, cyd01's "KiTTY"). It is tied to Windows keyboard codes, but translation from x11 codes is easy:
https://github.com/unxed/xkb2win/