#input #mouse #testing #keyboard #automation

enigo

Enigo lets you control your mouse and keyboard in an abstract way on different operating systems (currently only Linux, macOS, Win – Redox and *BSD planned)

14 releases

0.0.14 Mar 7, 2020
0.0.13 May 12, 2019
0.0.12 Jun 22, 2018
0.0.11 Sep 16, 2017
0.0.2 Jan 29, 2017

#61 in Testing

Download history 179/week @ 2021-01-13 156/week @ 2021-01-20 131/week @ 2021-01-27 141/week @ 2021-02-03 225/week @ 2021-02-10 261/week @ 2021-02-17 194/week @ 2021-02-24 191/week @ 2021-03-03 178/week @ 2021-03-10 221/week @ 2021-03-17 167/week @ 2021-03-24 161/week @ 2021-03-31 181/week @ 2021-04-07 195/week @ 2021-04-14 134/week @ 2021-04-21 139/week @ 2021-04-28

797 downloads per month
Used in 9 crates (7 directly)

MIT license

60KB
1.5K SLoC

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

enigo

Cross platform input simulation in Rust!

  • Linux (X11) mouse
  • Linux (X11) text
  • Linux (Wayland) mouse
  • Linux (Wayland) text
  • MacOS mouse
  • MacOS text
  • Win mouse
  • Win text
  • 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

Dependencies

~0–425KB