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

Disable "Tapping force Hold": make tap-hold on &mt keys output a held tap action. #288

Closed
krikun98 opened this issue Oct 20, 2020 · 11 comments
Assignees
Labels
behaviors enhancement New feature or request

Comments

@krikun98
Copy link
Contributor

krikun98 commented Oct 20, 2020

This feature is vital on 40% boards, where essentially all modifiers are on &mt keys. Currently, ZMK outputs a long hold action, and with, for example, my backspace on (&mt RSFT BKSP) there's no way to hold the key - it'll just be a long shift.

@okke-formsma
Copy link
Collaborator

@krikun98 I'm not sure if you are looking for retro tapping or tapping force hold.

From QMK docs:
https://beta.docs.qmk.fm/using-qmk/software-features/tap_hold#retro-tapping
Retro Tapping: Holding and releasing a dual function key without pressing another key will result in nothing happening. With retro tapping enabled, releasing the key without pressing another will send the original keycode even if it is outside the tapping term.

https://beta.docs.qmk.fm/using-qmk/software-features/tap_hold#tapping-force-hold
Tapping force Hold: When the user holds a key after tapping it, the tapping function is repeated by default, rather than activating the hold function. This allows keeping the ability to auto-repeat the tapping function of a dual-role key. TAPPING_FORCE_HOLD removes that ability to let the user activate the hold function instead, in the case of holding the dual-role key after having tapped it.

@krikun98
Copy link
Contributor Author

krikun98 commented Oct 20, 2020

"Tapping force Hold" is the default mode for ZMK. I didn't know "Retro Tapping" was a pre-existing term, I thought it was something you came up with. I'm looking for a possibility to disable "Tapping force Hold", i.e. to mimic the default behavior of QMK.
The description for "Retro Tapping" doesn't sound like what I need. I'll rename the issue.

@krikun98 krikun98 changed the title Retro tapping: make tap-hold on &mt keys output a held tap action. Disable "Tapping force Hold": make tap-hold on &mt keys output a held tap action. Oct 20, 2020
@innovaker innovaker added behaviors enhancement New feature or request labels Oct 20, 2020
@joric
Copy link

joric commented Jan 31, 2021

Need this asap for jorne backspace. How to enable autorepeat maybe there's a quick patch I could do? Need that urgently.
My keymap: https://github.com/zmkfirmware/zmk/blob/main/app/boards/shields/jorne/jorne.keymap
The only way I could afford for now is &mt RSHFT BSPC -> &kp BSPC. I just need backspace autorepeat to work.

joric added a commit to joric/zmk that referenced this issue Jan 31, 2021
@okke-formsma
Copy link
Collaborator

Sorry, no work on this has been done yet. I can't think of a quick fix right now other than disabling the hold tap

okke-formsma added a commit to okke-formsma/zmk that referenced this issue Jan 31, 2021
Tap-and-hold a hold-tap to hold the tap behavior so it can repeat.
After a tap, if the same key is pressed within `quick_tap_ms`, the
tap behavior is always picked.

This is useful for things like `&ht LSHFT BACKSPACE` where holding
the backspace is required.

See zmkfirmware#288
@okke-formsma
Copy link
Collaborator

@joric it's your lucky day, if you care to test my branch?

okke-formsma added a commit to okke-formsma/zmk that referenced this issue Jan 31, 2021
Tap-and-hold a hold-tap to hold the tap behavior so it can repeat.
After a tap, if the same key is pressed within `quick_tap_ms`, the
tap behavior is always picked.

This is useful for things like `&ht LSHFT BACKSPACE` where holding
the backspace is required.

Implements zmkfirmware#288
@joric
Copy link

joric commented Feb 1, 2021

@okke-formsma I didn't get autorepeat with your code. Am I supposed to do a specific tap dance? I have a key &mt RSHFT BSPC and I want BSPC to autorepeat on hold. I don't get autorepeat neither on hold nor on double tap.
upd ok it works. I just had to add &mt { quick_tap_ms =<200>; }; to the keymap (before all the nested \ section).

okke-formsma added a commit to okke-formsma/zmk that referenced this issue Feb 1, 2021
Tap-and-hold a hold-tap to hold the tap behavior so it can repeat.
After a tap, if the same key is pressed within `quick_tap_ms`, the
tap behavior is always picked.

This is useful for things like `&ht LSHFT BACKSPACE` where holding
the backspace is required.

Implements zmkfirmware#288.
@andreiboyanov
Copy link

Works nicely for me, thank you so much ! I was waiting for this feature so long. I tested it with my home row mods where I have navigation arrows on a layer and now I'm able to move the cursor quickly with this new thing. Made my Monday :)

All I did to activate it was to add quick_tap_ms = <200>; to my home row mods behavior config.

@luckyrider
Copy link

Thank you!
It works &mt LALT SPC and &mt RSHFT BSPC
But what about &mt LWR RET or &mt RSE TAB ? It's need on 40% keyboards also

@petejohanson
Copy link
Contributor

Thank you!
It works &mt LALT SPC and &mt RSHFT BSPC
But what about &mt LWR RET or &mt RSE TAB ? It's need on 40% keyboards also

You'd want to update the existing layer tap behavior instance in your keymap, e.g.:

&lt { quick_tap_ms = <200>; }

Note: this is not nested at all under the / node, since you're referencing an existing node and adding a property to it.

@krikun98
Copy link
Contributor Author

krikun98 commented Feb 2, 2021

This works amazingly well, thanks!

okke-formsma added a commit to okke-formsma/zmk that referenced this issue Feb 2, 2021
Tap-and-hold a hold-tap to hold the tap behavior so it can repeat.
After a tap, if the same key is pressed within `quick_tap_ms`, the
tap behavior is always picked.

This is useful for things like `&ht LSHFT BACKSPACE` where holding
the backspace is required.

Implements zmkfirmware#288.
@okke-formsma
Copy link
Collaborator

@petejohanson should be good now

petejohanson pushed a commit that referenced this issue Feb 2, 2021
Tap-and-hold a hold-tap to hold the tap behavior so it can repeat.
After a tap, if the same key is pressed within `quick_tap_ms`, the
tap behavior is always picked.

This is useful for things like `&ht LSHFT BACKSPACE` where holding
the backspace is required.

Implements #288.
tyalie pushed a commit to tyalie/zmk that referenced this issue Nov 15, 2022
Tap-and-hold a hold-tap to hold the tap behavior so it can repeat.
After a tap, if the same key is pressed within `quick_tap_ms`, the
tap behavior is always picked.

This is useful for things like `&ht LSHFT BACKSPACE` where holding
the backspace is required.

Implements zmkfirmware#288.
yuanbin pushed a commit to yuanbin/zmk that referenced this issue Jun 14, 2023
Tap-and-hold a hold-tap to hold the tap behavior so it can repeat.
After a tap, if the same key is pressed within `quick_tap_ms`, the
tap behavior is always picked.

This is useful for things like `&ht LSHFT BACKSPACE` where holding
the backspace is required.

Implements zmkfirmware#288.
lkong pushed a commit to lkong/zmk that referenced this issue Jul 9, 2023
Tap-and-hold a hold-tap to hold the tap behavior so it can repeat.
After a tap, if the same key is pressed within `quick_tap_ms`, the
tap behavior is always picked.

This is useful for things like `&ht LSHFT BACKSPACE` where holding
the backspace is required.

Implements zmkfirmware#288.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
behaviors enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

7 participants