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

Permissive Hold, and two keymaps #1359

Merged
merged 5 commits into from
Jun 7, 2017
Merged

Permissive Hold, and two keymaps #1359

merged 5 commits into from
Jun 7, 2017

Conversation

adamgordonbell
Copy link
Contributor

@adamgordonbell adamgordonbell commented Jun 3, 2017

If you need this split up somehow let me know.

  • Permissive Hold flag
    • makes tap and hold keys work better for fast typers who don't want tapping term set above 500
    • without this, if you let go of a held key inside the tapping term, it won't register
      • Example: (Tapping Term = 200)
        • SHFT_T(KC_A) Down
        • KC_X Down
        • KC_X Up
        • SHFT_T(KC_A) Up
      • With permissive hold, if above is typed within tapping term, this will emit X
      • With defaults, if above is typed within tapping term, this will emit ax, which I doubt is what anyone really wants
  • My two keymaps ported from tmk

docker-compose.yml Outdated Show resolved Hide resolved
avrdude Outdated Show resolved Hide resolved
@adamgordonbell adamgordonbell changed the title Docker Compose, Permissive Hold, and two keymaps Permissive Hold, and two keymaps Jun 3, 2017
Dockerfile Show resolved Hide resolved
@jackhumbert
Copy link
Member

Awesome! Thanks :)

@jackhumbert jackhumbert merged commit 84012d8 into qmk:master Jun 7, 2017
@ezuk
Copy link
Contributor

ezuk commented Jun 9, 2017

Now documented here, please let me know if anything needs revised.

@lambdalisue
Copy link
Contributor

Is this feature similar with #889 ?

@fnurl
Copy link
Contributor

fnurl commented Sep 29, 2017

@lambdalisue I was actually trying to something similar to #889 by looking at PERMISSIVE_HOLD since it was the feature referenced from the docs. Thanks for the reference since I probably would not have found it otherwise!

PERMISSIVE_HOLDrelates to overriding TAP_TERM if the key is used as a modifier within TAP_TERM (i.e. while the keypress is actually considered a tap and not a hold).

My issue was that my space key was not behaving like the momentary layer switcher I wanted it to be and instead repeating itself. TAPPING_FORCE_HOLD gives the hold behavior priority over the keyrepeat behavior.

@rmwphd
Copy link
Contributor

rmwphd commented Jun 20, 2019

It seems (by analogy to the IGNORE_MOD_TAP_INTERRUPT setting) like this setting only affects mods like SHFT_T() and not layer keys like LT(). Is there a way to force LT() to work like this? So, e.g.:

LT(F,RIGHTSYM) DOWN
D DOWN
LT(F,RIGHTSYM) UP
D UP

all within Tapping Term produces the value assigned to the D key in the RIGHTSYM layer? I looked at the code in action_tapping.c, but it seems to be concerned with mods only. Is the code for LT() setting somewhere else?

Thanks!

@ales
Copy link

ales commented Aug 3, 2019

Is there a way to force LT() to work like this? So, e.g.:

LT(F,RIGHTSYM) DOWN
D DOWN
LT(F,RIGHTSYM) UP
D UP

yes please! I miss this so much right now! was trying to hack the code but without success so far. Is there a reason for its not working for LTs? Would it be hard to implement? In free time I'll try to hack the code some more as this is really bothering me (missing the right strokes often)

@ales
Copy link

ales commented Aug 18, 2019

Partially solved it with this setting:

#undef TAPPING_TERM
#define TAPPING_TERM 10

#define RETRO_TAPPING

but unfortunately it brought new problem: #6557

@AckslD
Copy link

AckslD commented May 14, 2021

Thanks for sharing this @ales! One issue I have is when pressing a tap-hold key to quickly after a normal key. For example I have one key as LT(_LOWER, KC_SPC). If I want to type something in the _LOWER-layer, your trick is very useful. However I have issues when I want to press space very quickly after a normal key, eg:

  • KC_A down
  • LT(_LOWER, KC_SPC) down
  • KC_A up
  • LT(_LOWER, KC_SPC) up

then the space is not registered which I assume is due to RETRO_TAPPING. However I think it would be better if retro tapping only activated the modifier if another key was pressed down after the original and not if, as in this case, another is already down. Any ideas how one can achieve this?

Edit: Is this actually the issue you refer to in #6557?

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

Successfully merging this pull request may close these issues.

9 participants