XAUT - Python library for keyboard, mouse or windows manipulation

XAUT (formerly known as XAUTomation) is a C/Python library used to programmatically simulate keyboard and mouse use, as well as manipulate windows. XAUT controls all mouse clicks and keystrokes, including the state of caps lock, num lock, and scroll lock. Also this library automates X11. XAUT is an open source software that was inspired by AutoIt and AutoHotkey and is compatible with newer Python libraries.
Among the XAUT display functions are those that control:

  • the desktop's width;
  • the desktop's height;
  • the number of desktops currently available;
  • the current desktop.

XAUT can set a pause between key clicks, a string to type, a key to click, press, or release by id. It includes functions that turn caps lock/num lock/scroll lock on or off and return status. Also there are functions that release all resources allocated by XAUT, initialize (or reinitialize) default values, or print messages to the console.
This Python library can click the mouse, press and hold down the mouse buttons, release a previously pressed down mouse, or move the mouse to the specified coordinates. XAUT manipulates mouse be determining how long the mouse stays down when clicked and how long to pause between mouse clicks.
In context of windows manipulation XAUT has resources to:

  • retrieve the window’s current coordinates, width, height, desktop number and title/name;
  • resize window;
  • return a handle to the currently active window;
  • perform a deep search for all windows which match the name given;
  • activate the window;
  • iconify or minimize a window to the system tray, make a window full screen or restore it to its "natural" state;
  • move a window to the coordinates supplied, and potentially to a different virtual desktop.

Content that is copied/pasted or dragged/dropped is called a selection and can be managed by X11. There are two types of selections: primary and clipboard. Primary selection is activated whenever you highlight text. There is no need to make any additional actions, content is available as soon as you finished selecting. After selecting something else in any program the first selection is deleted. Clipboard selection works similar to "clipboard" in Windows OS. You can add content there using a key combination (e.g. CTRL+C), or a menu choice (e.g. Edit->Copy).
X11 in this situation does not access or store this data, but it knows who has it. When program requests that data, X11 redirects this request to the proper program. If these two programs work with the identical data types, then content pastes. The current XAUT version allows manipulations with text only. XAUT creates an invisible window that keeps data that was put into a selection. This window stays in the background and manages selection requests.
More detailed information on this Python library can be found on the XAUT website. Quintagroup uses XAUT as a part of automated web testing suite along with py.test, Selenium WebDriver, and OpenCV.


It is a pleasure working with the Plone developers at Quintagroup. They are very knowledgeable, efficient, and customer-focused. I have found Plone to be a powerful and user-friendly Content Management System.

August 13, 2013
Robert Loftur-Thun

Wonderful Plone developers. Fast, efficient and very knowledgeable.

August 12, 2013
Jason Atwood

Thanks a lot... I've always appreciated the level of services provided by your company, I'm a big fan and shall continue to advertise your services among my fellow Zope developers!

Nov 30, 2011
Dominique Trembloy

I have used a Plone site environment hosted by Quintagroup to develop a workflow application for my business. Since January 2010 ... I have been a customer of Quintagroup and I am very happy about the good and reliable service, including update of the website to version 4.1 of Plone.

Apr 20, 2011
Maarten de Vries

...I was a very satisfied customer for 7 years. They made sure that my website was always up, even during a couple episodes of being "slashdotted", and fixed the very few problems that I had in record time. This is a very professionally run outfit...

Feb 14, 2011
Mario Butter


I just want to thank each of you for your work... My business has increased and my anxiety level has been lowered since using Plone...It's been such a pleasure working with a professional and intelligent group like your.

Tom Parish