Autokey Versions Save

AutoKey, a desktop automation utility for Linux and X11.

v0.96.0

1 year ago

Changelog

Version 0.96.0

Important misc changes

  • Script and phrase metadata are no longer stored as hidden dotfiles. Existing scripts should be automatically converted, but if switch back to versions prior to this one, you will need to copy or symlink them back to dotfile form.
  • Scripting API files are now in Python packages, which may require adjusting imports if you have scripts that import them directly.
  • Change the default phrase send mode to ctrl+v (paste using clipboard) rather than sending keys one at a time.
  • This version represents some significant refactoring since the previous update, so bug reports will be highly appreciated.

Features

Scripting API

engine API object

  • Deprecated: Confusingly named engine.create_abbreviation() and engine.create_hotkey() are deprecated and will be removed in the future. Use engine.create_phrase() with appropriate arguments instead.
  • Extended: engine.create_phrase() now supports multiple new optional arguments, allowing to fully configure the created phrase. It can set everything the GUI can do.
  • New: Scripts can use engine.get_triggered_abbreviation() to read which abbreviation triggered it's execution. The function returns a tuple containing the abbreviation and the trigger character (the character that 'completed' or 'confirmed' the abbreviation. Both tuple elements are None if the script was not triggered by an abbreviation. The trigger character is None if the script was configured to 'trigger immediately'. The function always returns a tuple, so direct tuple unpacking like abbreviation, trigger = engine.get_triggered_abbreviation() will always work.
  • Allow creation of 'temporary' hotkeys and whole folders (which do not persist between sessions).
  • Allow overriding existing hotkeys when creating phrases with hotkeys.
  • Allow creation of folders.
  • Add set_clipboard_image methods for both GTK and Qt. Takes a file path to an image to load into the clipboard.

keyboard API object

  • keyboard.send_keys() got a new optional parameter send_mode, allowing to specify how the given text is sent. It basically offers the same pasting options as are available to AutoKey Phrases.
  • keyboard.send_keys() now raises a TypeError instead of a generic AssertionError, if parameters don't match the expected types.

New clipboard API method - Change the default phrase send mode to ctrl+v (paste using clipboard) rather than sending keys one at a time.

New mouse API object

  • Add mouse drag, click and scroll options to the API.
Command line interface
  • Added a --version command line switch. It prints the current AutoKey version on the standard output and then exits.
Graphical user interfaces
  • (GTK) Warn user about missing required and optional programs on startup.
  • (GTK) UI will now update when changes are detected to watched files.
  • (GTK) refresh UI if script files are modified externally
  • Use system monospace font
  • Add setting to change GtkSourceView theme, (defaults to classic).
Other
  • Add wait_for_keyevent scripting function.
  • Rewrote script error logging system, with a neat Script Error Dialog to go with it.
  • <script> script macros accept absolute paths.
  • Macro arguments can be quoted, allowing arguments containing spaces.
  • Macro arguments can contain angle bracket characters, if escaped.
  • Add <system> macro for replacing phrase contents with output of an external process.
  • Allow autokey-run to accept full paths to python scripts (if no full path is given, will treat as an existing AutoKey script name instead).
  • Expand Unicode characters using code points (hacky workaround for being unable to send actual Unicode).
  • Allow disabling Capslock in settings
  • Link to script .py and .json above editor.
  • Add appropriate keywords to .desktop files for both UIs.
  • Build debs and update pypi on new releases

Bug fixes

  • Both QT and GTK versions will reload hotkeys after a keymap change event.
  • Fix locking issue
  • Expose Alt_GR as a hotkey modifier on GTK.
  • (GTK) Fixed GUI lock-up, if multiple script error notifications are posted in quick succession. The notifications are now rate-limited and won't post more than one notification per second. Fixes issue #383
  • Fix issue with pip installation reporting a missing module
Scripting API
  • Fixed API call system.exec_command() crashing, if output capturing is active, but the executed command has empty output. Fixes issue #379
Packaging
  • Fixed AutoKey PNG icon size. Now, the icon size is 96x96 pixels, fixing Lintian warnings on Debian. Fixes issue #369

Other changes ---------

  • Add CI for testing
  • Update pip installation requirements
  • Add CONTRIBUTERS.rst
  • Internal Code cleanup. The configuration handling module is split into multiple modules inside a dedicated package.
  • AutoKey now has a working test environment again. pytest based unit-tests can be launched from the source checkout using python3 setup.py test

New Dependencies (test-time only)

The new unit tests introduce two new, test-time only dependencies. These are used for unit tests only and not during normal AutoKey execution.

  • pytest
  • PyHamcrest

v0.96.0-beta.10

2 years ago

v0.96.0-beta.9

2 years ago

v0.96.0-beta.8

2 years ago

v0.96.0-beta.7

2 years ago

Fixes issues with building and running

v0.96.0-beta.6

2 years ago

Fix crash when renaming entries in qt

v0.96.0-beta.5

2 years ago

v0.96.0-beta.2

3 years ago

Fix installation error with modules.

v0.96.0-beta.1

3 years ago

Changelog for this tag is mostly replicated below.

  • Script and phrase metadata are no longer stored as hidden dotfiles. Existing scripts should be automatically converted, but if switch back to versions prior to this one, you will need to copy or symlink them back to dotfile form.
  • Scripting API files are now in Python packages, which may require adjusting imports if you have scripts that import them directly.
  • Change the default phrase send mode to [ctrl+v]{.title-ref} (paste using clipboard) rather than sending keys one at a time.
  • This version represents some significant refactoring since the previous update, so bug reports will be highly appreciated.
  • Deprecated: Confusingly named engine.create_abbreviation() and engine.create_hotkey() are deprecated and will be removed in the future. Use engine.create_phrase() with appropriate arguments instead.

engine API object

  • Deprecated: Confusingly named engine.create_abbreviation() and engine.create_hotkey() are deprecated and will be removed in the future. Use engine.create_phrase() with appropriate arguments instead.
  • Extended: engine.create_phrase() now supports multiple new optional arguments, allowing to fully configure the created phrase. It can set everything the GUI can do.
  • New: Scripts can use engine.get_triggered_abbreviation() to read which abbreviation triggered it's execution.
  • The function returns a tuple containing the abbreviation and the trigger character (the character that 'completed' or 'confirmed' the abbreviation. Both tuple elements are None if the script was not triggered by an abbreviation. The trigger character is None if the script was configured to 'trigger immediately'. The function always returns a tuple, so direct tuple unpacking like abbreviation, trigger = engine.get_triggered_abbreviation() will always work.
  • Allow creation of 'temporary' hotkeys and whole folders (which do not persist between sessions).
  • Allow overriding existing hotkeys when creating phrases with hotkeys.
  • Allow creation of folders.

keyboard API object

  • keyboard.send_keys() got a new optional parameter send_mode, allowing to specify how the given text is sent. It basically offers the same pasting options as are available to AutoKey Phrases.
  • keyboard.send_keys() now raises a TypeError instead of a generic AssertionError, if parameters don't match the expected types.

New mouse API object

  • Add mouse drag, click and scroll options to the API.

Command line interface

  • Added a --version command line switch. It prints the current AutoKey version on the standard output and then exits.

Graphical user interfaces

  • (GTK) Warn user about missing required and optional programs on startup.
  • (GTK) UI will now update when changes are detected to watched files.
  • (GTK) refresh UI if script files are modified externally
  • Use system monospace font
  • Add setting to change GtkSourceView theme, (defaults to classic).

Other

  • Add wait_for_keyevent scripting function.
  • Rewrote script error logging system, with a neat Script Error Dialog to go with it.
  • <script> script macros accept absolute paths.
  • Macro arguments can be quoted, allowing arguments containing spaces.
  • Macro arguments can contain angle bracket characters, if escaped.
  • Add <system> macro for replacing phrase contents with output of an external process.
  • Allow autokey-run to accept full paths to python scripts (if no full path is given, will treat as an existing Autokey script name instead).
  • Expand unicode characters using code points (hacky workaround for being unable to send actual unicode).
  • Allow disabling Capslock in settings
  • Link to script .py and .json above editor.
  • Add appropriate keywords to .desktop files for both UIs.

Bug fixes

  • Both QT and GTK versions will reload hotkeys after a keymap change event.
  • Fix locking issue
  • Expose Alt_GR as a hotkey modifier on GTK.
  • (GTK) Fixed GUI lock-up, if multiple script error notifications are posted in quick succession. The notifications are now rate-limited and won't post more than one notification per second. Fixes issue #383

Scripting API

  • Fixed API call system.exec_command() crashing, if output capturing is active, but the executed command has empty output. Fixes issue #379

Packaging

  • Fixed AutoKey PNG icon size. Now, the icon size is 96x96 pixels, fixing Lintian warnings on Debian. Fixes issue #369

Other changes

  • Add CI for testing
  • Update pip installation requirements
  • Add CONTRIBUTERS.rst
  • Internal Code cleanup. The configuration handling module is split into multiple modules inside a dedicated package.
  • AutoKey now has a working test environment again. pytest based unit-tests can be launched from the source checkout using python3 setup.py test

New Dependencies (test-time only)

The new unit tests introduce two new, test-time only dependencies. These are used for unit tests only and not during normal AutoKey execution.

  • pytest
  • PyHamcrest

v0.95.10

4 years ago

Bug fixes

  • Mitigate crashes when entering invalid Python regular expressions in the window filter dialogue. Fixes issue #212
  • Added option to disable the handling of the Capslock modifier key. Fixes issues when that key is remapped to something else, for example Ctrl. The new option can be found in the settings dialogue. Fixes issues #95, #291
  • API function system.exec_command() now only trims the last character in the output, if it is actually a newline character. If the executed command does not output a newline at the end, the full output is returned. Fixes issue #354
  • Fixed wrong optional argument in man page for autokey-run. Fixed by pull request #361
  • Removed unnecessarily set executable bit from several AutoKey SVG icons. Fixed by pull request #363