- Improved: The
comboKey()
method now accepts arrays of keys to be sent together in its parameters, just like thecombine()
andmodifier()
methods. - Improved: The
modifier()
method is now documented to accept an array of keys as itsremappingKey
parameter. It has worked by accident; no it's "official". - Added: The
specificDelays
option. - Added: The
combinators
parameter of thecombine()
method, just like thecomboKey()
method. - Fixed: Any of the characters #!^+<>*~$ may now be used as downKeys, upKeys, remappingKeys and in combinators. They were accidentally stripped out before.
- Removed: The
force
option. It never really worked. (Backwards incompatible change.) - Added: The
combinators
parameter of thecomboKey()
method, replacing theforce
option and the old advice on combinator shortcuts. - Added: defaults.ahk.
- Fixed: The
force
option should cause the downKey to be sent when the delay has passed, not immediately, to make the delay useful at all.
- Added: The
force
option.
- Added: The
reset()
method, to deal with modifiers being stuck down.
- Added: Initial unit testing.
- Changed: The
Dual
constructor now takes an optional settings object as parameter, just like thecombine()
method, instead of setting properties on the instance. This is more consistent, nicer and encourages changing the settings before setting up dual-role keys. (Backwards incompatible change.) - Improved: Re-factored some code.
- Added: The
modifier()
method. - Improved: The
timeout
anddoublePress
can be turned off, by setting them to-1
.
- Fixed: Dual-role keys typed rapidly in succession were output backwards. For example, you wanted to type fd but got df.
- Improved: If you press down a dual-role key, then another, and then release the first, the full press of the first dual-role key is always a no-op.
- Both of the above are explained in detail in the source code.
- Fixed: The comboKeys sometimes failed to force down downKeys. They now force them down much more forcefully.
- Fixed: The dual-role keys now trigger other hotkeys out of the box (except hotkeys using the
&
combiner), with no changes to the other hotkeys required. They also work more reliably. - Improved: Re-implemented the functionality of
Dual.send()
way more robustly. - Changed: Replaced
Dual.send()
with theSendInput()
,SendEvent()
,SendPlay()
,SendRaw()
andSend()
methods. (Backwards incompatible change.) - Replaced the
Dual.set()
with thecombine()
method, in order to fix the above. (Backwards incompatible change.) - Replaced the
comboKeys
setting with thecomboKey()
(andcombo()
) method, because of the above. (Backwards incompatible change.) - Added: Per-key settings.
- Changed: The script now exports the class
Dual
itself, not an instance of the class. (Backwards incompatible change.)
- Comments are no longer allowed in the comboKeys setting. It prevented
;
from being used as a comboKey, and it is not worth introducing escape rules. (Backwards incompatible change.)
- Fixed #3: Now {downKey down} won't be sent until the timeout has passed, in order to support the alt and Windows modifiers.
Initial release.