#mouse-input #input #automation #keyboard #mouse #api-bindings

rdevin

Cross-platform simulation and global listening for keyboard and mouse input

1 unstable release

new 0.1.0 May 10, 2025

#1002 in Testing

MIT license

175KB
5K SLoC

rdevin

Crate API

Cross-platform simulation and global listening for keyboard and mouse input.

[!WARNING] This crate is subject to extreme change. There is still great room for improvement. It is only presently published for use by NuhxBoard.

Listening for input

The listen and grab [^1] functions can be used to run a callback for all input events.

rdevin::listen(|e| dbg!(e))?;

Simulating input

The simulate function can be used to send input events.

use rdevin::{simulate, EventType, Key};

simulate(&EventType::KeyPress(Key::KeyS))?;

Serialization

Serde support is gated behind the serde feature.

Acknowledgements

  • This crate is a fork of a fork of a fork of Narsil's rdev crate, created to ensure continued maintenance and to make Rustdesk's many useful additions available on crates.io.
  • Enigo, an input simulation library, served as inspiration and reference for Narsil's original crate.

[^1]: Not available on Linux

Dependencies

~2–13MB
~102K SLoC