Receiving key press and key release events in Linux terminal applications?

前端 未结 3 1808
粉色の甜心
粉色の甜心 2020-12-05 14:23

I would like to write a simple C program that will perform different actions based on both \"key down\" and \"key up\" events. This program will be run from inside rxvt.

相关标签:
3条回答
  • 2020-12-05 14:43

    The following links may be of some assistance in using the keyboard raw mode which will give you access to the keyboard events rather than just key releases.

    1. This Linux Journal article
    2. This article on SourceForge
    3. And this HOWTO for when it all goes bad

    Raw mode does have the disadvantage that you have to do your own conversion from scan codes to characters though.

    0 讨论(0)
  • 2020-12-05 14:57

    I don't think ncurses will work. The link Basilevs provided talks about the "up arrow" key and the "down arrow" key, not a key press and release.

    0 讨论(0)
  • 2020-12-05 15:07

    This won't work in the general case. ANSI terminals (from which all emulators descend) represent key "press" events only. They don't record down/up events independently.

    If you need low level keyboard event access, the proper environment is really a GUI program. Even a web application will have cleaner access to key events than a terminal.

    0 讨论(0)
提交回复
热议问题