mkey — Mouse and Key

mkey automates tasks such as double-click, write a sentense, run delayed commands in a terminal, open a web page and connect with login and password.



pip install mkey
mkey file1.mkey file2.mkey

Exit status:

0: success 1: missing file 2: syntax error

The mkey command calls the mkey() function:

from mkey import *
mkey('file1.mkey', 'file2.mkey')

The *.mkey scripts must be in UTF-8 but not necessarily signed. The *.ahk scripts created by mkey are in UTF-8 with BOM signature because the Unicode version of AutoHotkey 2 assumes that an unsigned file is ANSI encoded.


h Hello world!
r Regards,;John Doe
c0 clear;ls --color
p_ printf("Hello");

g john.doe 1234

explorer 7zFM:
mpv sumatrapdf: q

The [ctrl] and [shift] sections are the right keys of the keyboard, the left keys are unchanged. [left], [middle], [right] are the mouse buttons.

Each shortcut is defined by a key or an executable, followed by the action to be performed.

The default line splitter is ;. If a number is specified c0 clear;ls --color each character is delayed by 10ms, mandatory in a terminal or a virtual machine, in this case a final “Enter” is sent. The specified number is the delay in seconds after each line, 0 is 200ms. To generate a semicolon, redefine the splitter p_ printf("Hello");.

An URL opens a tab in the browser, can be followed by : and the words to be written and validated by “Enter” at each left click, validation is avoided if the word ends with ., the > symbol sends a tabulation for fill the next field. The left click is restored once all fields filled or the “Esc” key pressed.

In the line explore 7zFM: no action is defined, the default action is the left double-click. A middle click in mpv.exe is equivalent to writing “q” to quit MPV. Specify the extension if it is not “.exe”: soffice.bin: a middle click in LibreOffice opens two tabs in the browser. The executable name is case sensitive.


0.4: February 16, 2019 — First beta release
0.3: February 8, 2019 — import * imports mkey() only
0.2: January 29, 2019 — Packaging with setuptools and metadata
0.1: January 28, 2019 — First alpha release