rawkey

Crates.iorawkey
lib.rsrawkey
version0.1.3
sourcesrc
created_at2019-07-16 18:29:05.366839
updated_at2020-09-14 20:57:06.158341
descriptionRaw terminal key input
homepagehttps://github.com/jonathandturner/rawkey
repositoryhttps://github.com/jonathandturner/rawkey
max_upload_size
id149446
size13,182
Hampus Lidin (hampuslidin)

documentation

README

Early release of a project to support raw key input in terminals. Currently, this supports the following raw keys across the major OSes:

  • LShift - Left Shift (or either Shift on some OSes)
  • LControl - Left Control
  • Back - Backspace
  • Space
  • Tab
  • Escape
  • LeftArrow
  • UpArrow
  • RightArrow
  • DownArrow
  • PageUp
  • PageDown
  • Alt

Rather than using events, rawkey offers a way to scan to see if the key is pressed or not.

use rawkey::{KeyCode, RawKey};

let mut rawkey = RawKey::new();

loop {
    if rawkey.is_pressed(KeyCode::Escape) {
        break;
    }
    if rawkey.is_pressed(KeyCode::UpArrow) {
        print!("Up ");
    }
    if rawkey.is_pressed(KeyCode::DownArrow) {
        print!("Down ");
    }
    if rawkey.is_pressed(KeyCode::LeftArrow) {
        print!("Left ");
    }
    if rawkey.is_pressed(KeyCode::RightArrow) {
        print!("Right ");
    }
    println!("");
}
Commit count: 22

cargo fmt