Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: add tap-ms property to hold-tap behavior #1443

Open
manna-harbour opened this issue Aug 31, 2022 · 2 comments
Open

Feature request: add tap-ms property to hold-tap behavior #1443

manna-harbour opened this issue Aug 31, 2022 · 2 comments

Comments

@manna-harbour
Copy link

manna-harbour commented Aug 31, 2022

Hold-tap taps are sent as press immediately followed by release. This can cause compatibility issues with other systems.

QMK has TAP_CODE_DELAY for this purpose, default 100ms, https://github.com/qmk/qmk_firmware/blob/master/docs/config_options.md#behaviors-that-can-be-configured.

The macros behavior has a tap-ms property, implemented with behavior_queue, default 100ms, https://zmk.dev/docs/behaviors/macros#tap-time.

Hold-tap could be implemented using behavior_queue with tap-ms in the same way as in the macros behavior.

It might also be necessary to do this with all behaviors that generate key events, such as shifted keycodes in kp. See #756, #759, #815,

@lesshonor
Copy link
Contributor

...probably worth noting that QMK's default for this value is actually 0

(a lot of projects began setting it to 10ms because supposedly Windows ignores volume up and down events sent more quickly than that, but 100ms would be quite noticeable)

@caksoylar
Copy link
Contributor

The default tap time of macros has been changed to 30ms since then, but that is probably still a bit long outside of remote desktopping and such.

Now that there are parametrizable macros, this could be worked around easier using them instead of &kp:

        kpt: kp_tap_time {
            compatible = "zmk,behavior-macro-one-param";
            label = "KPT";
            tap-ms = <10>;  // tweak as needed
            #binding-cells = <1>;
            bindings = <&macro_param_1to1>, <&kp MACRO_PLACEHOLDER>;
        };

Then using &kpt instead of &kp in the hold-tap definition.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants