I do really like key-chord.el but I’d need it to only trigger when I start pressing keystrokes after a short delay during which I didn’t do anything elapsed. I’d like to know if it’s easy to modify key-chord.el to do that.
Why I want that is simple and I’ll try to explain it as easily as I can:
-
I do want keychords to be assigned to keys that are on my “strong” fingers (no pinky) and that are on my home row (I do touch-type). Hence I’m potentially creating quite a few keychords which may clash with common words / code when I’m typing.
-
I realized that everytime there’s a clash (i.e. keychords kicking in while I didn’t want to) it’s because I’m in the process of frenziedly modifying the buffer.
Here’s an example…
I’m a fast typist so if I’m entering, say, “held”, there is never going to be a long delay between when I add the ‘e’ of “held” and when I then type the ‘l’. So in this case it should be “obvious” that I do not want key-chord to kick in when I type ‘ld’. However if there’s a pause and if ‘ld’ is an assigned key-chord and then I hit ‘ld’, then it is very unlikely that I’m writing code / text that would be starting with ‘ld’. So in this later case (and because I have assigned ‘ld’ to a key-chord), I do want it to kick in.
Now don’t get me wrong: I’m not sayin this would eliminate every single possible clash in every single case. All I’m saying is that, in my case, this would probably eliminate 99.9% of the (already rare) clashes. The “time lost” should one clash still occur after this change to key-chord would be negligible compared to the amount of time key-chord is making me gain.
The code to key-chord.el is very small so maybe such an addition wouldn’t be too hard?
Does anyone have an idea as to how if it would be easy to modify key-chord.el to provide such a feature? (I hope I explained correctly what I want to do)
Here’s the code to key-chord.el and half of it is comments:
The Idle Timer mechanism should be able to facilitate this.
C-hig
(elisp) Idle TimersRETI’ll leave it to you (or someone else) to figure out the details. Offhand thoughts are:
post-command-hookto disable it againThat might be all that is needed?