Bind key events (press/release) to functions in rust using xlib.
Supports same key with different modifier. Functions are executed in new threads.
Add this to your Cargo.toml
[dependencies]
keyfn = "0.2.1"
extern crate keyfn;
use keyfn::*;
fn main(){
// create new KeyStorage
let mut storage = KeyStorage::new();
// Call crtl-a_pressed when Control + a is pressed
let ctrl_a = KeyBind::new(
keysym::XK_a,
vec![Mod::Control],
Trigger::Pressed,
ctrl_a_pressed,
);
// Add KeyBind to storage
storage.add(ctrl_a);
// start storage
storage.start();
}
fn ctrl_a_pressed(){
println!("Control + A pressed!");
}