How to implement Tap - Hold - Long_Hold - Double_Tap_Hold #166
gerhard-h
started this conversation in
Show and tell
Replies: 1 comment
-
In the latest version, people will likely want to use macro-release-cancel instead, which is a feature that was inspired by this discussion. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Nesting tap-hold
abc (tap-hold 140 140 [ (tap-hold 200 300 (macro b) (macro c)))
gives a quite horrible user experiance becausethere is no visual feedback during the Hold periode.
but when nesting tap-hold inside multi you can clearly tell if you get
1
or!
or!!
because they appear one after the other1 (tap-hold 200 300 1 (multi (macro S-1 ) (tap-hold 200 400 XX (macro S-1 ))))
EDIT with the new feature macro-release-cancel it gets much simpler
(macro-release-cancel 1 140 S-1 400 S-1 )
but it's still a good idea to start out with an tap-hold because this is much snappier.1 (tap-hold 1 140 1 (macro-release-cancel S-1 400 S-1 ))
EDIT in most cases you don't want autorepeat on a tap-hold key. You achive this by wrapping the key inside a macro.
But for
m
*
****...
I wanted Delayed_Autorepeatm* (tap-hold 140 140 m (multi (macro S-= ) (tap-hold 200 700 XX S-= )))
by using backspace even
1
or!
or@
works (wich is surprising as I suspected to get S-A-C-q)1 (tap-hold 200 300 1 (multi (macro S-1 ) (tap-hold 200 400 XX (macro bspc A-C-q ))))
even Very_Long_Hold is possible
0
or=
or==
or===
0 (tap-hold 140 140 0 (multi (macro = ) (tap-hold 200 300 XX (multi (macro = ) (tap-hold 200 500 XX (macro = )) ))) )
for home row mods Long_Hold makes little sense, but you could use Double_Tap_Hold
f
orshift
or]
(tap-dance 140 ((tap-hold-release 140 140 f lsft) (tap-hold 200 240 (macro f f) (macro A-C-9))))
also tap | hold | long_hold | dbl_tap | dbl_tap_hold is possible
-_~: (tap-dance 140 ((tap-hold 10 100 - (multi (macro S-- ) (tap-hold 200 400 XX (macro bspc @til ))) ) (tap-hold 10 100 (macro - -) (macro @: ))))
EDIT Meanwile kanata supports nesting tap-dance inside tap-hold wich is much better because you can set longer tap-dance timings without affecting tap-hold and tap-hold (the outer one) will be much snappier.
-_~ (tap-hold 10 100 (tap-dance 160 (- (tap-hold 10 100 (macro - -) (macro @til)) (tap-hold 10 100 (macro - - -) -) )) (multi (macro S-- ) (tap-hold 200 400 XX (macro bspc @til ))) )
P.S. don't combine multi with unicode
(tap-hold 140 140 1 (multi (unicode ! ) (tap-hold 200 400 XX (macro bspc A-C-q ))) )
because kanata will crash on holding now.Beta Was this translation helpful? Give feedback.
All reactions