2 releases
Uses new Rust 2024
| 0.1.1 | Mar 7, 2026 |
|---|---|
| 0.1.0 | Mar 6, 2026 |
#911 in Simulation
98KB
2K
SLoC
Keyflow
Cross-platform input simulation library for Rust. Simulate keyboard and mouse input, and register global hotkeys on Linux and Windows.
Optional Features
[dependencies]
keyflow = { version = "0.1", features = ["serde"] }
serde- Enable serialization/deserialization of input events
Quick Start
use keyflow::prelude::*;
fn main() -> Result<(), Box<dyn std::error::Error>> {
// Initialize Keyflow
Keyflow::initialize()?;
// Simulate keyboard
Keyflow::press_key(Key::A);
Keyflow::click_key(Key::Enter);
// Simulate mouse
Keyflow::move_to(500, 300);
Keyflow::click_button(Button::Left);
Keyflow::scroll_vertical(-3);
Ok(())
}
Platform Requirements
Linux
Keyflow requires access to /dev/uinput for input simulation. Add your user to the input group:
sudo usermod -aG input $USER
Then log out and back in, or run your program with sudo.
Note: On Linux, the virtual device may take 1-2 seconds to be fully registered after initialization.
Windows
No special permissions required.
Examples
Full examples are available in the examples/ directory:
basic.rs- Keyboard and mouse basicshotkeys.rs- Global hotkey registrationbatch.rs- Batch event processingmulti_monitor.rs- Multi-monitor positioningserde_config.rs- Save/load automation scripts
Dependencies
~1–31MB
~507K SLoC