Introduction

What is Automaton?

Automaton is a library that allows you to execute certain operations when certain inputs are given (via input devices connected to your computer). It can be used for almost all keyboard and mouse related projects, be it manipulating said devices, or for capturing their inputs.

As of yet, it provides a number of builtin methods for listening and capturing the input from your keyboards, allowing you to create of hotkeys, hotstrings, etc.

How does it work?

It is meant to be a replacement for AutoHotkey, which does not work on Linux. It makes use of the Linux evdev interface and, as such, requires root privileges. Automaton is focused on being the perfect tool for the creation of macros and other keyboard-related gimmicks for Linux.

The Automaton Project

Automaton is divided into two parts: the library itself, which is written in Python, and the autumn language, which makes use of the library to allow simple tasks to be done with relative ease (currently not implemented). The latter is similar to the AutoHotkey language, although syntactically distinct.

The library itself can be used without the autumn language (a feature that AutoHotKey lacks).

Why should I use it?

The unavailability of AutoHotKey on Linux was indubitably the impetus for this project. Sure, there many other libraries/applications in Linux that provide similar features (notable examples include keyboard and mouse, pynput, and AutoKey), however Automaton, unlike these libraries, offers the most feature parity with AutoHotKey on Linux, being directly based on its design and structure after years of use on Windows. With Automaton, you'll be able to do everything you could with Linux in roughly the same amount of code, though their syntaxes differ.

Here's a neat table that summarizes the pros and cons of Automaton, because tables never lie:

Pros:

  • Can be used across Linux. Not just x11, or KDE, all of Linux.
  • Almost complete feature parity with AutoHotkey.
  • Supports unicode 䔄 (looking at you, keyboard)
  • Supports key suppression.

Cons:

  • Does not work on Windows.