qmk / qmk/qmk_firmware

[Bug] Unnecessary layer activation delay when using "Layer Tap-Toggle": design bug?

Open
#8,317 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug help wanted
Dominant language
C
Stars
20.7k
Forks
44.3k
Avg merge
1d 18h
Merged PRs (30d)
12

Description

Hello,

I started using my Planck EZ 2 days ago, here is my configuration.
Note the TT 4 key at the bottom right on the base layer.

Within seconds of first trying this feature, I immediately knew that something is wrong with it, because when pressing the key there is an unexpected delay before the layer is activated. By artificially increasing the Tapping Term, I was able to confirm that the layer is indeed only activated once the Tapping Term has expired. This makes no sense, though, and the layer should immediately activate when pressing the TT key, regardless of the Tapping Term, just the same as for MT keys.

Here is my desired behavior for this feature, and I think it is entirely logical and without drawbacks, let me know if I missed anything. When I press a TT key, the layer should activate immediately and there are 3 possibilities:

  1. If I do not press anything else and release the TT key before the Tapping Term expires, then the layer should remain activated until I press the TT key again.

  2. If I do not press anything else and DO NOT release the TT key before the Tapping Term expires, then the layer should remain activated only until I release the TT key.

  3. If I press anything else while still holding the TT key, then the layer should remain activated only until I release the TT key, regardless of the Tapping Term.

I believe this covers all cases. Let me know if I missed anything. I believe the current slight delay (equal to the Tapping Term) before activating the layer when pressing a TT key serves no useful purpose whatsoever and should thus be removed, thereby resulting in a much snappier user experience.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the Planck EZ configuration linked in the issue, focusing on the TT 4 key and its Tapping Term behavior. Trace the firmware's Layer Tap-Toggle handling and related tapping logic; done means the layer activates immediately and follows the three hold, release, and second-key cases described in the issue, with regression coverage if the relevant tests are found.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
embedded-iot
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.