autogui 1.0.0 copy "autogui: ^1.0.0" to clipboard
autogui: ^1.0.0 copied to clipboard

A cross-platform GUI automation library for Dart. Control mouse and keyboard programmatically on macOS, Windows, and Linux.

example/autogui_example.dart

import 'dart:io';
import 'package:autogui/autogui.dart';

Future<void> main() async {
  // Permissions tip
  if (!Mouse.isAccessibilityTrusted) {
    stderr.writeln(
      '⚠️  Accessibility missing. Enable your Terminal/IDE in:\n'
      'System Settings → Privacy & Security → Accessibility\n',
    );
  }

  // --- Print mouse position continuously (Ctrl+C to quit) -------------
  stdout.writeln('Press Ctrl+C to quit. Current position prints in place.\n');
  ProcessSignal.sigint.watch().listen((_) {
    stdout.writeln('\nBye!');
    exit(0);
  });

  // Also demonstrate the API once before loop:
  final size = Screen.size();
  stdout.writeln('Screen size: ${size.x} x ${size.y}');
  stdout.writeln('onScreen(0,0) -> ${Screen.onScreen(0, 0)}');
  stdout.writeln(
    'onScreen(${size.x},${size.y}) -> ${Screen.onScreen(size.x, size.y)} (expected false)',
  );
  await Mouse.moveTo(200, 200);
  await Mouse.move(
    0,
    80,
    duration: Duration(milliseconds: 300),
    easing: easeInOutQuad,
  );
  Mouse.doubleClick();
  Mouse.scroll(5);
  Mouse.hscroll(-4);

  // Live position printer (PyAutoGUI-style)
  while (true) {
    final p = Mouse.position();
    final s =
        'X: ${p.x.toStringAsFixed(0).padLeft(4)}  Y: ${p.y.toStringAsFixed(0).padLeft(4)}';
    stdout.write('$s\r');
    await Future.delayed(Duration(milliseconds: 50));
  }
}
0
likes
160
points
83
downloads

Publisher

verified publisher0xharkirat.com

Weekly Downloads

A cross-platform GUI automation library for Dart. Control mouse and keyboard programmatically on macOS, Windows, and Linux.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

ffi

More

Packages that depend on autogui