Experimental: Hold key activation
Configuration is hard coded currently:
- hold
fto toggle hint-mode - hold
ato toggle scroll-mode
can't use j because you have to hold j to scroll down.
@blackketter @colossatr0n @al3xandru @benwoodward and any interested Vimac users:
Would yall mind testing hold key activation and giving me feedback? I'm consistently thinking about how I can make Vimac even easier/less painful to use so that users will find it easier to pick it up as a habit. Hold key activation is one of those ideas that I'm fairly confident is a winner, but I'd love to hear your thoughts on it before I spend more time & effort on it.
I've attached a copy of the build, you may have to Right click -> Open since it is unsigned.
EDIT: you'll have to disable key sequence activation to get it working now.
@dexterleng I already have a solution using a hold key (based on Karabiner). The truth is that I almost never use it because it requires using both hands. Even mapping it to keys that could allow single hand usage makes it harder to use than mode-based activation.
My suggestion would be to stick with modes. I’ll give it a try though.
@al3xandru I don't understand - what do you mean by mode-based activation? You hold a key/hit a shortcut/type a sequence, which activates a mode. The mechanism is different but the workflow is the same.
Alas:

I'm also getting the same error as blackketter.
@blackketter @colossatr0n could you try out this solution?
https://apple.stackexchange.com/a/372208/348536
@dexterleng with the current approach (hit a shortcut or chord) mode activation is stateful. After activation, my hands are free.
With hold, mode activation if temporary. My hand needs to keep the activation key pressed. I already have a working solution for this latter case so for me it’s not really appealing. My interest is in reducing the number of fingers involved :-)
With hold, mode activation if temporary. My hand needs to keep the activation key pressed.
What I meant by hold key activation is, you hold f to activate hint-mode. Once it is activated you can lift it off to type the hint-text. Its one finger that you hold for ~0.25 seconds.
Are our understandings of hold key activation similar or is there a disconnect?
I'm curious - what is your working solution look like?
@blackketter @colossatr0n could you try out this solution?
https://apple.stackexchange.com/a/372208/348536
That fixed it. Thx. Also reauthorized in preferences for both Input Monitoring and Accessibility.
I'm able to use the hold F and A triggers. I feels slower than the modifier or sequence triggers.
Measuring it with "Is It Snappy?" (https://isitsnappy.com) it's about 500ms from F key down to hints on my MBP. By comparison, modifier or sequence triggers are120ms faster from the first key.
I also find myself pressing extra hard on the F or A key to trigger. Maybe I'd stop doing that after some practice.
I'll keep using it and see if it grows on me, but so far I'd prefer the original triggers.
This may be a matter of taste, and assuming it's not a big challenge, why not let the user choose any of these techniques?
This may be a matter of taste, and assuming it's not a big challenge, why not let the user choose any of these techniques?
I don't plan on removing any activation mechanisms, although I would like to figure which one should be the default/main mechanism that gets marketed, taught to new users, and prioritized higher than the others.
I'm able to use the hold F and A triggers. I feels slower than the modifier or sequence triggers. Measuring it with "Is It Snappy?" (https://isitsnappy.com) it's about 500ms from F key down to hints on my MBP. By comparison, modifier or sequence triggers are120ms faster from the first key.
I'd love to know if this will still bother you after using for a couple hours/days. I just built this feature a few hours ago, and so far I think although it is slower than key sequence or shortcut, the effort to activate is much lower and allows me to be more "lazy".
I'd love to know if this will still bother you after using for a couple hours/days. I just built this feature a few hours ago, and so far I think although it is slower than key sequence or shortcut, the effort to activate is much lower and allows me to be more "lazy".
Will do.
Is there any way to adjust the hold wait time? It doesn't appear that the system keyboard Delay Until Repeat or the Vimac Reset Delay settings affect this.
Is there any way to adjust the hold wait time? It doesn't appear that the system keyboard Delay Until Repeat or the Vimac Reset Delay settings affect this.
Nope. I'll have to build it again. However, I have tried lower delays (0.1, 0.2) and found that it was activating while I was typing.
I'm experiencing typing delays which kind of make it unusable for me. Sometimes the typing delay is related to the "a" or "f" keys but sometimes it's not.
Here's a related key instance: if I type "ta", "t" gets ignored unless I type slower since "a" is an activation key.
Sometime though I'll be typing something like "ty" and one of the letters gets ignored.
When I quit this version of Vimac, I don't experience the typing delays any more.
My favorite activation method is still the key sequence activation. I've set them to ";f" for hints and ";s" for scrolling. There are still typing delays with using the key sequences option, but in this case I only get the delay when typing ";" which is doable since ";" isn't a character that you normally type in the middle of a sentence.
Here's a related key instance: if I type "ta", "t" gets ignored unless I type slower since "a" is an activation key.
I'm seeing this too.
Is there any way to adjust the hold wait time? It doesn't appear that the system keyboard Delay Until Repeat or the Vimac Reset Delay settings affect this.
Nope. I'll have to build it again. However, I have tried lower delays (0.1, 0.2) and found that it was activating while I was typing.
It makes sense to me to use the system keyRepeatDelay for this timing. It would provide a consistent interface for the timing associated with press and hold of a key.
One other minor note: On US keyboards, at least, a is a poor choice because holding a should bring up a menu with diacritical characters. f is ok, as are b,d,g,h,j,k,m,p,q,r,t,v,w,x and 0-9. Punctuation keys repeat and probably should be left to do so.
Ok, I had to switch back. I found the press and hold problematic for two reasons:
- It felt like I was being slowed down while waiting for the
fkey to trigger hints. - I kept accidentally triggering scroll mode while typing.