An open API service indexing awesome lists of open source software.

https://github.com/nelsongillo/keyfn

bind key events (press/release) to functions in rust
https://github.com/nelsongillo/keyfn

keybinder rust xlib

Last synced: 4 months ago
JSON representation

bind key events (press/release) to functions in rust

Awesome Lists containing this project

README

          

# keyfn
Bind key events (press/release) to functions in rust using xlib.\
Supports same key with different modifier. Functions are executed in new threads.

## Usage
Add this to your `Cargo.toml`
```
[dependencies]
keyfn = "0.2.1"
```

## Example
``` rust
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!");
}
```