A command-line tool for simulating keyboard/mouse input and automating window management on X11 systems.
xdotool is a command-line automation tool for X11 systems that simulates keyboard and mouse input, and manages windows programmatically. It solves the problem of automating repetitive GUI interactions, enabling users to script desktop actions, automate application testing, or control window layouts without manual intervention.
Linux/Unix users and developers working on X11-based systems who need to automate desktop tasks, perform GUI testing, or create custom window management scripts.
Developers choose xdotool for its straightforward command-line interface, deep integration with X11's native functions, and reliability in automating complex desktop interactions without requiring graphical scripting environments.
fake keyboard/mouse input, window management, and more
The README shows straightforward commands like 'xdotool type "Hello world"' for typing text, making it easy to script without complex GUI tools.
Uses X11's XTEST extension and Xlib functions for reliable automation, as highlighted in the philosophy, ensuring direct control over desktop interactions.
Can search, move, resize, and modify window properties, demonstrated in examples like resizing all gnome-terminal windows with 'windowsize %@ 500 500'.
Includes libxdo, a C library that provides the same automation capabilities, allowing integration into custom applications for extended functionality.
The README explicitly warns that xdotool does not work correctly on Wayland, with typing, window searching, and other functions failing, limiting its relevance on modern systems.
Requires X11 libraries and a running X server, making it unusable in headless environments or where X11 is not installed, as noted in the build prerequisites.
Focuses on basic input and window control without built-in support for advanced automation like OCR or event recording, which newer tools might offer.
Building from source requires installing multiple X11 libraries (xlib, xtst, etc.), as listed in the prerequisites, which can be cumbersome compared to package manager installations.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.