autogui 0.4.1

GUI Automation toolbox for Rust
#![feature(inclusive_range_syntax)]

extern crate autogui;
use autogui::{AutoGUI, Key, Position};

use std::path::Path;
use std::thread::sleep;
use std::time::Duration;

fn main() {
    let gui = AutoGUI::new();

    let mut m = gui.mouse;
    let mut k = gui.keyboard;

    m = m
        .at(Position::new(1370, 70))
        .drag_to(Position::new(1370, 200));
    m.at(Position::new(80, 80)).doubleclick();

    for (i, s) in AutoGUI::screenshot().iter().enumerate() {
        s.save(Path::new(&format!("screen_{}.png", i))).unwrap();
    }

    k = k.press(Key::LeftSuper).tap(Key::T).release(Key::LeftSuper);
    k = k.write("ls -A").tap(Key::Return);

    for i in 1..=5 {
        k = k.write(&format!("echo {}", i));
        k = k.tap(Key::Return);
        sleep(Duration::from_millis(1000));
    }

    k.press(Key::LeftCtrl).tap(Key::D).release(Key::LeftCtrl);
}