5 ms·
> How do I get an event for <shift> key up/down by itself? How do I distinguish Esc by itself from Esc combined with something els How do I drive a screw with
by zokier 2y ago
> How do I get an event for <shift> key up/down by itself? How do I distinguish Esc by itself from Esc combined with something els
How do I drive a screw with a hammer? Badly. It doesn't make hammer a bad tool though.
Terminals are a simple tool. The inputs and outputs are lines of text. If your application doesn't fit that model and needs keypress events then terminal is simply the wrong tool for the job.
- M95D 2y agoLet's take MC, or any other TUI app. Esc is the common key to use to exit from menus, dialog boxes, various views, etc. If the terminal is the wrong tool, then give example of the right tool.
- eviks 2y agoGUI is
- zokier 2y agoAs I said, terminals are best suited for command line applications; lines of text in, lines of text out. Something that would work on classic ASR-33 or ADM-3A. Dialog boxes, menus, and views are concepts that are more fitted to GUIs. And as such the right tool these days would be Wayland. For example, you get native keyboard scancode events and XKB keymaps, allowing far better input handling capabilities than any layering of hacks on top ANSI escape codes ever can. The whole point of terminals is that they are simple, text based, and as such interoperable and standardized. ANSI escape code extensions are decidedly not text nor simple, and often very non-interoperable to varying degrees. As such they are pretty antithetical to the whole idea of terminals.
- M95D 2y agoI am against this view. GUI invites bloat.
- icedchai 2y agoPerhaps we need a better example? Detecting "esc" is simple: it is its own key code (ASCII 27.) Detecting "esc" and another key is more difficult because it is not a modifier, like shift or control, so you'll have to do it yourself.
- lmz 2y agoI think the issue is that ESC is also a prefix for other keys. Which leads to the question: is this just an escape or is this a prefix of e.g. a cursor key? This can only be answered by timing.