4 releases (stable)
2.0.0 | Jun 27, 2021 |
---|---|
1.0.1 | Jun 1, 2021 |
0.9.0 | May 31, 2021 |
#10 in #termion
35 downloads per month
Used in libtui
16KB
230 lines
XEKEYS
A simple program to gather key-presses.
Note:
- None of the mod keys are case sensitive.
- Ctrl does not work on '-', ';', ''', ',', '.', '[' or '+'.
- Super only supports arrow keys as I found no way to support regular keys. Any pull requests on this issue would be appreciated.
- Raw mode is needed for most of the key detection.
Simple example
extern crate xekeys;
use xekeys::{get_keys, Keys};
fn main() {
loop {
// Here we get the keypresses as a struct.
let keys = get_keys();
// Here we check if q is pressed and control is pressed and if so, we break.
match keys {
| Keys::CtrlChar('q') => break,
| _ => {}
};
}
}
Motivation
When I was using termion, I came to the realization that I was unabled to detect ctrl+arrow keys, something I needed. So I made my own crate; but, to justify using this over termion, I added most of the functionality of termion key presses and some extra, such as more modifiers with arrow keys and function keys up to 20.
License
XEKEYS uses BSD-3 clause.
Termion Alternative:
I dont want to make a full termion alternative, termion is already great; but, if you want one, I suggest using this for keypresses, raw_tty for raw mode, lliw for styling, and I guess you can do the cursor movement using ANSI escape codes as well as clearing.