kerravon wrote:This one has an issue I don't know how to get around.
My applications (ie micro-emacs) rely on two ESC coming through when the user presses ESC (as allowed by ANSI X3.64), rather than relying on a non-standard random delay (I don't like random delays ever since someone from Alpha Centauri told me 4 years ago that it was causing an issue).
But the "MATE" terminal I use on Kylin Linux only sends one ESC with no ability to configure that.
I don't know which component is responsible for fixing this.
So that means currently I have to press ESC twice.
I have the same issue on Windows 10.
I don't have the issue on OS/2 or PDOS/386 because I am required to interpret the keyboard myself. I don't have that option at all on Linux. On Windows I could likely go through some hoops.
I'm having the same issue in different Forth interpreters. Gforth on Windows handles it right, presumably with a Windows call to get the actual key, but Pforth is reliant on terminals and I had gave up and made the user press ESC twice. After considerable thought, I concluded a delay is the only way to do it better, given the constraint of sticking with the terminals I have. I had no idea there was a double-ESC option, especially as VIM and other VI editors don't expect it.
This was just the tail end of a 25-year saga of dissatisfaction with terminals, and I want to be free of them in the future. (I'm disappointed in myself that I still need them now.) Plan 9 and VNC have, between them, shown me that remote windowing can be practical and relatively lightweight. Plan 9 showed me that even if you're just drawing text, a remote window system can be a better design than ANSI standard terminals. Though having said that, I'm sure there are much better-designed terminals than the ANSI standard or anything else of the VT-xxx range. In-band signalling is stupid.
I just looked up the VT100 keyboard expecting, from the protocol design, that it would have a CAN (cancel) key and no ESC key. I couldn't believe it when I saw it had an ESC key in a prominent position. To borrow your phrasing, @kerravon, I consider this a _deficient_ design!

What we have is not what was good, but what was available.