zmk icon indicating copy to clipboard operation
zmk copied to clipboard

New hold-tap flavor: tap-when-interrupted

Open amacleod opened this issue 10 months ago • 0 comments

Use case: have a &mo momentary layer key that also holds down a modifier while undecided; in some games, holding LALT temporarily enables an informational overlay, so it would be nice to have a key on the main layer that holds LALT while held, but on a keyboard with very few keys, I would want to also use that key for enabling layers (see https://github.com/amacleod/zmk-config/blob/f6ca0f07ecfccd9b5f8c1c47e0586fc050835ce3/config/cradio.keymap#L130-L137 for my attempt, as inspired by @Nick-Munnich)

The hold-tap with tap-preferred and a large tapping term works okay: it holds LALT as intended, and does a tap of the binding in the layer but only after I release the physical key to which my hold-tap is bound (as is normal for tap-preferred hold-taps).

Based on Nick's comments, I propose a new hold-tap flavor, "tap-when-interrupted": when the key is initially pressed, if hold-while-undecided is set, it will activate its hold side, but then the moment there is an interruption, the tap behavior goes off.

For my use case, I would prefer that, when the interrupting key is pressed, things proceed in the following order:

  1. release the hold
  2. press the tap
  3. resolve the on-press portion of the interrupting key's behavior
  4. in any order, release the interrupting key and release the tap

amacleod avatar Feb 09 '25 17:02 amacleod