Detect meta (special) keys (Ctrl, Shift, Alt, Tab,

2019-02-17 21:29发布

I want to know if anybody knows how to detect meta (special) keys (Ctrl, Shift, Alt, Tab, Esc, Backspace) from Shell Input.

I've seen posts that explain how to detect arrow keys and such, but not the above special keys.
Is there any way I can do $ showkey -s and use the raw scan-code to somehow get the key input?

Any kind of help will be much appreciated!!

2条回答
三岁会撩人
2楼-- · 2019-02-17 21:50

I'm not sure it always make sense. The tty discipline is doing something (details are gory). Perhaps you need a helper program (e.g. in C, which would use a library like ncurses or readline) such as dialog!

查看更多
虎瘦雄心在
3楼-- · 2019-02-17 21:54

In general, you cannot do it. That said:

  • X11 sends KeyPress and KeyRelease events.
  • The Linux console provides a set of ioctls that allow low-level access to the keyboard, documented at console_ioctl(4). You would set the keyboard to RAW or MEDIUMRAW mode (don't confuse these modes with termios' raw mode, they are not related at all).
查看更多
登录 后发表回答