- Creating UInputs on demand to avoid plugging in devices that confuse the system
- Added
hold_keys - The GUI asks for a python-evdev upgrade if necessary
- Fixed confusion in udev between the forwarded and original device, causing the udev rule to autoload and overwrite the intended injection
- Refactorings
- Fix crash when triggering a macro multiple times
- Added unique non-zero exit codes
- Updated Slovak translation
- Fixed GUI bugs caused by a mapping to a single whitespace,
"foo()"orfoo() # a + b - Replicating the original device properties for the injection
- Keys that make the GUI lose the focus, like media keys, can be configured now
- Added multiline macro editor with improved autocompletion that works for combinations and macro parameters
- Added reusable global default uinputs that represent a keyboard, a mouse and a gamepad that are available at all times
- Colorful logging based on file instead of log-level, and added the name of the child process that printed the log
- Split tests into unit and integration, added PyCharm test configuration, added proper test exit code, using the correct temporary directory in tests
- renamed key-mapper to input-remapper, fixed conflict with existing keymapper package
- fixed autoload after a preset rename
- improved config file migrations
- avoiding pointless autoload attempts during boot
- improved logs
if_tapandif_single- added more readable names for all the shorthand functions
- string support, so that
set(var, "a, b")works which sets the variable "var" to "a, b" $varto use a variables value in macros, likewait($var)- support for named parameters, like
if_tap(k(a), k(b), timeout=500) if_eq, an improvedifeqmacro with support for variables likeif_eq($a, $b, k(c), k(d)).ifeqis deprecated but still works- comment support for macros via
# - improved code readability, especially in the keycode_mapper
- architecture changes to make the injection pipeline clearer: Consumer base class and ConsumerControl
- complete separation of keycode_mapper and event_producer, both inheriting from Consumer now
- split and refactored a few files/classes
- internationalization
- figures out the configured home directory of the user instead of defaulting to /home/user
- fixes for multi-user environments
- fixes for various gamepads
- added ctrl + r shortcut to refresh the device list
- removed keys from the dropdown that are only possible with modifier keys
- the left mouse button can be mapped now
- the displayed key names for gamepads are more readable