Skip to content

Version 1.4.0

Latest
Compare
Choose a tag to compare
@KarsMulder KarsMulder released this 05 Jun 10:15
· 101 commits to main since this release

New Features

New argument: --withhold
When you use a --hook to trigger an action on a certain key combination, the --withhold argument can be used to prevent that key combination from reaching the output device.

For example, with the following arguments, you can run a command on pressing Ctrl+A, and the key:a events will be dropped from the event stream if and only if they were used to trigger that command:

    --hook key:leftctrl key:a exec-shell="echo Hello, world!" sequential \
    --withhold key:a

The --hook argument accepts more flags/clauses
The --hook argument now accepts the following additional flags/clauses: send-key=..., sequential, period=... and breaks-on=....

The send-key=... clause is useful for pressing a key whenever a combination of other keys gets pressed.

The flags/clauses sequential, period=... and breaks-on=... put additional restrictions on when the hook can trigger, and are mostly useful for fine-tuning the behaviour of the new --withhold argument.

New argument: --delay
The --delay argument removes events from the event stream and adds them back a fixed amount of time later, effectively delaying events by a fixed amount of time.

Key format extended: event type/code elision
It is now possible to elide the event code or both the event type and code in some places. For example, the filter key::1 will match any key event with value 1, and the filter ::0 will match any event with value 0.

Key format extended: new special values
The special value x has been added, which is a placeholder for the value of the source event. For example, --map rel ::2x will double the value of any EV_REL event, mapping e.g. rel:x:5 to rel:x:10 and mapping rel:y:-4 to rel:y:-8.

Affine combinations of special values are now allowed as well. For example, if you know that your abs:y axis takes values in the range [0, 255], then you can use --map abs:y abs:y:255-x to invert the y axis.

Bugfix / Behaviour Changed

  • Whenever a single event is mapped to multiple events, the output devices will now insert an EV_SYN synchronisation report between all generated events. Previously the output devices only synchronised when the input devices did.
  • Trying to use a key with too many colons such as key:a:1:2 will now give an error. Previously, the :2 part was silently ignored.