enigo icon indicating copy to clipboard operation
enigo copied to clipboard

Cross platform input simulation in Rust

Build Status Build status Dependency Status Docs Crates.io Discord chat Gitter chat

enigo

Cross platform input simulation in Rust!

  • [x] Linux (X11) mouse
  • [x] Linux (X11) text
  • [ ] Linux (Wayland) mouse
  • [ ] Linux (Wayland) text
  • [x] MacOS mouse
  • [x] MacOS text
  • [x] Win mouse
  • [x] Win text
  • [x] Custom Parser
let mut enigo = Enigo::new();

enigo.mouse_move_to(500, 200);
enigo.mouse_click(MouseButton::Left);
enigo.key_sequence_parse("{+CTRL}a{-CTRL}{+SHIFT}Hello World{-SHIFT}");

for more look at examples

Runtime dependencies

Linux users may have to install libxdo-dev. For example, on Ubuntu:

apt install libxdo-dev

On Arch:

pacman -S xdotool