qmk/qmk_firmware

[Bug] When holding multiple mod-tap keys, only one gets registered as a modifier

Open

#13,346 opened on Jun 26, 2021

View on GitHub
 (2 comments) (0 reactions) (0 assignees)C (43,867 forks)batch import
bughelp wanted

Repository metrics

Stars
 (20,368 stars)
PR merge metrics
 (Avg merge 20d 9h) (27 merged PRs in 30d)

Description

Describe the Bug

I have home-row modifiers set up with mod-tap like so:

#define HM_A LALT_T(KC_A)
#define HM_R LGUI_T(KC_R)
#define HM_S LSFT_T(KC_S)
#define HM_T LCTL_T(KC_T)

My relevant configuration is as follows:

#define TAPPING_TERM 250
#define IGNORE_MOD_TAP_INTERRUPT
#define TAPPING_FORCE_HOLD
#define PERMISSIVE_HOLD

When I input this key sequence:

HM_R down, HM_S down, KC_SPACE down, KC_SPACE up, HM_S up, HM_R up

My computer sees the following:

gui down, s down, space down, space up, s up, gui up

But I would expect to see this:

gui down, shift down, space down, space up, shift up, gui up

Basically, I would expect the second mod-tap key to also be treated as a modifier since space was pressed and released between when it was pressed and released.

System Information

  • Keyboard: Keyboardio Atreus
    • Revision (if applicable):
  • Operating system: Arch Linux
  • AVR GCC version: 11.1.0
  • ARM GCC version: 11.1.0
  • QMK Firmware version: 0.13.2
  • Any keyboard related software installed?
    • AutoHotKey
    • Karabinerk
    • Other:

Contributor guide