Skip to content

[Bug] Nested/combined OSM is unreliable #25905

@musjj

Description

@musjj

Describe the Bug

I'm trying to combine one shot mods, but I find that they are often unreliable. For example, the following works:

OS_LCTL↓ OS_LCTL↑ OS_LSFT↓ OS_LSFT↑ KC_A↓: Ctrl+Shift+A
OS_LCTL↓ OS_LSFT↓ OS_LCTL↑ OS_LSFT↑ KC_A↓: Ctrl+Shift+A

But this one doesn't:

OS_LCTL↓ OS_LSFT↓ OS_LSFT↑ OS_LCTL↑ KC_A↓: Shift+A

There's a timing element to this too, if you don't press the sequence fast enough they won't register.

And I've also noticed that when you try to hold them down together like they're normal modifiers, then repeatedly press another key, sometimes one of the mods simply won't register, other times one of the modifiers gets dropped midway.

I'm not sure how to better debug this.

Keyboard Used

zsa/voyager

Link to product page (if applicable)

https://www.zsa.io/voyager

Operating System

NixOS

qmk doctor Output

Ψ QMK Doctor is checking your environment.
Ψ Python version: 3.13.9
Ψ CLI version: 1.1.8
Ψ QMK home: /home/$USER/Documents/qmk/qmk_firmware
Ψ Detected Linux (NixOS 26.05 (Yarara)).
Ψ Testing userspace candidate: /home/$USER/Documents/qmk/qmk_userspace -- Valid `qmk.json`
Ψ QMK userspace: /home/$USER/Documents/qmk/qmk_userspace
Ψ Userspace enabled: True
Ψ Git branch: master
Ψ Repo version: 0.31.3
Ψ - Latest master: 2025-12-22 19:00:57 -0500 (7e35cdda8a) -- Add FoldKB Rev. 2.1 with added underglow RGB LEDs (#25885)
Ψ - Latest upstream/master: 2025-12-25 00:24:50 +0000 (acbeec29da) -- Reduce frequency of automatic workflow run approval (#25896)
Ψ - Latest upstream/develop: None
Ψ - Common ancestor with upstream/master: 2025-12-22 19:00:57 -0500 (7e35cdda8a) -- Add FoldKB Rev. 2.1 with added underglow RGB LEDs (#25885)
Ψ - Common ancestor with upstream/develop: None
Ψ All dependencies are installed.
Ψ Found arm-none-eabi-gcc version 14.3.1
Ψ Successfully compiled using arm-none-eabi-gcc
Ψ Successfully tested arm-none-eabi-binutils using arm-none-eabi-size
Ψ Found avr-gcc version 14.3.0
Ψ Successfully compiled using avr-gcc
Ψ Successfully tested avr-binutils using avr-size
Ψ Found avrdude version t
Ψ Found dfu-programmer version 0.7.2
Ψ Found dfu-util version 0.11
Ψ Found diff version 3.12
Ψ Found dos2unix version 7.5.2
Ψ Found git version 2.51.2
Ψ Found make version 4.4.1
Ψ Submodules are up to date.
Ψ Submodule status:
Ψ - lib/chibios: 2025-05-15 08:25:11 +0000 --  (8bd61b8043)
Ψ - lib/chibios-contrib: 2025-10-03 18:22:15 +0200 --  (8d863d9e)
Ψ - lib/googletest: 2021-06-11 06:37:43 -0700 --  (e2239ee6)
Ψ - lib/lufa: 2022-08-26 12:09:55 +1000 --  (549b97320)
Ψ - lib/vusb: 2022-06-13 09:18:17 +1000 --  (819dbc1)
Ψ - lib/printf: 2022-06-29 23:59:58 +0300 --  (c2e3b4e)
Ψ - lib/pico-sdk: 2025-04-20 21:24:29 +1000 --  (d0c5cac)
Ψ - lib/lvgl: 2022-04-11 04:44:53 -0600 --  (e19410f8)
Ψ QMK is ready to go

Is AutoHotKey / Karabiner installed

  • AutoHotKey (Windows)
  • Karabiner (macOS)

Other keyboard-related software installed

No response

Additional Context

I have the following config.h:

#define TAPPING_TERM 250
#define CHORDAL_HOLD
#define PERMISSIVE_HOLD
#define FLOW_TAP_TERM 150

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions