4个版本 (稳定)

2.0.0 2021年6月27日
1.0.1 2021年6月1日
0.9.0 2021年5月31日

#5 in #modifiers

每月35次下载
用于 libtui

BSD-3-Clause

16KB
230

XEKEYS

收集按键的简单程序。

注意

  • 所有修饰键都不区分大小写。
  • Ctrl在'-'、';'、''、','、'.'、'['或'+'上不工作。
  • Super仅支持箭头键,因为我找不到支持常规键的方法。任何关于此问题的pull request都会受到欢迎。
  • 大多数按键检测都需要原始模式。

简单示例

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,
            | _ => {}
        };
    }
}

动机

当我使用termion时,我意识到我无法检测到ctrl+arrow键,这是我需要的。所以我创建了自己的crate;但是,为了证明使用这个而不是termion,我添加了termion按键功能的大部分功能,以及一些额外的功能,例如与箭头键和功能键一起使用更多的修饰符,最多可达20个。

许可

XEKEYS使用BSD-3条款。

Termion替代品

我不想制作一个完整的termion替代品,termion已经很棒了;但是,如果您想找一个,我建议您使用这个进行按键检测,使用raw_tty进行原始模式,使用lliw进行样式设计,我猜您还可以使用ANSI转义码进行光标移动以及清除。

更多信息

无运行时依赖