The reason for the major version number increment is mainly because of the changed behavior of ;. Up until 4.9 it was documented to start comments like #. Otherwise all configurations should work like before.
Added
-
Allow to separate multiple mappings on one line with
;. This is useful for macros which generate multiple mappings. e.g.:swap = $0 >> $1 ; $1 >> $0 swap[Y, Z]
-
Allow to add mappings for inputs which are released. e.g.:
# trigger when A is released !A >> B # trigger when B is released while A is held A{!B} >> C # trigger when B is released while A is NOT held !A !B >> C
-
Toggling virtual keys can also have immediate effects. Using them as modifiers is toggling them twice:
# toggle Virtual1 before and after pressing B # this effectively maps D to A B C Virtual1 >> A ^ C D >> Virtual1{B} # {} may also be empty. This maps C to A B Virtual2 >> B Virtual1 >> A Virtual2{} C >> Virtual1{}
-
Automatically replace
Virtualwith an unused virtual key. e.g.:# assign different virtual keys to VimMode and CapsWord VimMode = Virtual CapsWord = Virtual -
Added
keymapperctloperation--notifyfor showing notifications (#282). e.g.:notify = $(keymapperctl --notify "$0") F1 >> notify["Test"]
-
Added
toggle-activedirective, which allows to set a sequence that de-/activates keymapper (#283). e.g.:@toggle-active ScrollLock
-
Added
include-optionaldirective, which includes a file but does not fail when file does not exist.