[](https://github.com/enigo-rs/enigo/actions/workflows/CI.yml)
[](https://docs.rs/enigo)
[](https://deps.rs/repo/github/enigo-rs/enigo)

[](https://crates.io/crates/enigo)
[](https://discord.gg/Eb8CsnN)
[](https://gitter.im/enigo-rs/Lobby)
# 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
```Rust
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 Debian-based distros:
```Bash
apt-get install libxdo-dev
```
On Arch:
```Bash
pacman -S xdotool
```
On Fedora:
```Bash
dnf install libX11-devel libxdo-devel
```
On Gentoo:
```Bash
emerge -a xdotool
```
## Migrating from a previous version
Please have a look at our [changelog](CHANGES.md) to find out what you have to do, if you used a previous version.