Home row mod problem

I want to make h, j, k, l key to left, down, up, right in layer 1. I use hold space bar for switching layer. But it behaves differently from qmk and kanata (remapper software)

Current Problem

At the moment, tap-hold behavior appears to be mostly timeout-based.

Example configuration:

Tap Space -> Space

Hold Space -> Layer 1

Timeout -> 250ms

Current behavior:

Hold Space, Press J before 250ms expires

Result:

  1. J is still interpreted on the base layer
  2. Layer 1 is not activated yet

Expected behavior (used in mature firmware/software):

  1. pressing another key while Space is held should immediately convert Space into HOLD mode
  2. Layer 1 should activate instantly
  3. J should become Arrow Down immediately

Rolling Typing Problem

There is also a serious issue during fast typing with dual-role keys.

Example sentence:

"hello world"

Sometimes the output becomes:

"hellow orld"

This happens because human typing naturally overlaps key presses (“rolling typing”).

Real typing is usually NOT:

Release Space THEN press next key

Instead humans often do:

Space still slightly held while next key already starts

Many advanced firmware/software handle this correctly by buffering and delaying tap-hold decisions.

Existing Implementations (Reference)

QMK already implements multiple advanced tap-hold strategies:

  • Permissive Hold

  • Hold On Other Key Press

  • Retro Tap

  • Ignore Mod Tap Interrupt

  • Tapping Term customization

These features make home-row mods and layer taps practical.

Kanata handles:

  • overlapping typing

  • buffered resolution

  • interrupt-based hold detection

extremely well.

Even very fast typists rarely encounter accidental missing spaces or incorrect layer activation.

Adding these features would make HID Remapper much more competitive for advanced ergonomic keyboard users. Thank you for the amazing project.