tap-hold for chords while preserving typed key order on tap activation #1380
-
Is your feature request related to a problem? Please describe.With my setup, I use the spacebar and letter keys to type everything, and this means that a lot of the keys I use for typing are also used to shift between layers using the This ends up working fairly well, but I do find myself having to type slower or at least more carefully to avoid shifting layers by accident. Describe the solution you'd like.To avoid unintended key-presses, I think it could be nice to have the ability to use chords instead of keys to toggle between layers. But to do so while writing quicky, chords would need to have a similar functionality to the (tap-hold $tap-timeout $hold-timeout $tap-action $hold-action) I imagine it might make more sense to add this functionality to (tap-hold $tap-timeout $hold-timeout (w e) $symbol-layer) (where, in this pseudo-code example, In this example, holding "w" and "e" would switch to another layer, but typing "w" and "e" faster than the Now, I am aware that I could just define something like (defchordsv2
(w e) $symbol-layer 200 first-released ()
) but this doesn't work well for this use case as it's missing the Maybe adding an optional Describe alternatives you've considered.I have found a workaround, but I don't think it will scale too well. (defsrc
a s d f
)
(deflayer default
@a_mid @s_mid d f
)
(deflayer midlayer
@a_shft @s_shft _ _
)
(deflayer shifted
_ _ 3 4
)
(defalias
mid (layer-toggle midlayer)
shft (layer-toggle shifted)
a_mid (tap-hold 200 200 a @mid)
s_mid (tap-hold 200 200 s @mid)
a_shft (tap-hold-release 200 200 a @shft)
s_shft (tap-hold-release 200 200 s @shft)
) Additional contextNo response |
Beta Was this translation helpful? Give feedback.
Replies: 6 comments
-
Or maybe something like (defchordsv2
((tap-hold $tap-timeout $hold-timeout (participating-keys1) $hold-action)
timeout1
release-behaviour1
(disabled-layers1))
(participating-keys2) action2 timeout2 release-behaviour2 (disabled-layers1)
...
((tap-hold-release $tap-timeout $hold-timeout (participating-keysN) $hold-action)
timeoutN
release-behaviourN
(disabled-layersN))
) could be read by |
Beta Was this translation helpful? Give feedback.
-
another workaround is to use cords-v1 and put the cord aktivation in the hold part of tap-hold |
Beta Was this translation helpful? Give feedback.
-
If it's just two keys you can put |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
This does work, although it only seems to switch layers momentarily even if I continue holding down the chord. |
Beta Was this translation helpful? Give feedback.
-
Thanks @jtroo, this works well. I don't think I'll be using more than two keys per chord so this should be all I need. |
Beta Was this translation helpful? Give feedback.
Simulator link