This release expands input automation with held keys, complete Defold key coverage, and modifier chords.
- Special keys can now be held for up to 60 seconds using
holdwith/input/keyor Python’sgame.key(). - All named
dmHID::Keyvalues are supported, including punctuation, symbol, keypad, lock, and system keys. - Clicks, drags, drag paths, pointer sessions, and key presses now accept up to four chord modifiers. This enables actions such as Shift-click, Ctrl-drag, and Ctrl-Z.
- Modifiers are pressed before the primary action and released afterward, matching the ordering observed from physical keyboard input.
- Held keys remain active for their full requested duration, including with short controller leases.
- Invalid hold values, unsupported modifiers, and modifier chords with literal text now fail clearly instead of silently producing different input.
- Input receipts expose
requested_durationandmodifier_count, while/healthadvertisesinput.key>=2andinput.modifiers. - Long gesture visualizations remain visible for their configured duration after the final injected point.
- The example project now displays held SPACE timing and visibly confirms an
H + SHIFT + ALTchord.
Existing key taps and unmodified gestures require no changes. The Python wrapper checks the required capabilities before using held keys or modifiers.
API error envelopes now include the precise logical status in error.status. Because of a limitation in Defold’s embedded HTTP server, some logical errors are transported as HTTP 500; raw API clients should read error.status. The Python wrapper handles this automatically.
A big thank you to @jdbence for contributing held-key input, complete named-key coverage, and modifier chords!