Skip to content

Experimental: Hold key activation#407

Open
dexterleng wants to merge 5 commits intomasterfrom
hold-key-activation
Open

Experimental: Hold key activation#407
dexterleng wants to merge 5 commits intomasterfrom
hold-key-activation

Conversation

@dexterleng
Copy link
Copy Markdown
Collaborator

@dexterleng dexterleng commented Apr 16, 2021

Configuration is hard coded currently:

  • hold f to toggle hint-mode
  • hold a to toggle scroll-mode

can't use j because you have to hold j to scroll down.

@dexterleng
Copy link
Copy Markdown
Collaborator Author

dexterleng commented Apr 16, 2021

@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.

Vimac 2021-04-16 23-19-59.zip

@al3xandru
Copy link
Copy Markdown

al3xandru commented Apr 16, 2021

@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.

@dexterleng
Copy link
Copy Markdown
Collaborator Author

@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.

@blackketter
Copy link
Copy Markdown

Alas:
Screen Shot 2021-04-16 at 9 46 02 AM

@colossatr0n
Copy link
Copy Markdown
Contributor

I'm also getting the same error as blackketter.

@dexterleng
Copy link
Copy Markdown
Collaborator Author

@blackketter @colossatr0n could you try out this solution?

https://apple.stackexchange.com/a/372208/348536

Repository owner deleted a comment from blackketter Apr 16, 2021
@al3xandru
Copy link
Copy Markdown

@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 :-)

@dexterleng
Copy link
Copy Markdown
Collaborator Author

dexterleng commented Apr 16, 2021

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
Copy link
Copy Markdown

@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?

@dexterleng
Copy link
Copy Markdown
Collaborator Author

dexterleng commented Apr 16, 2021

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.

@dexterleng
Copy link
Copy Markdown
Collaborator Author

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".

@blackketter
Copy link
Copy Markdown

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.

@dexterleng
Copy link
Copy Markdown
Collaborator Author

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.

@colossatr0n
Copy link
Copy Markdown
Contributor

colossatr0n commented Apr 16, 2021

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.

@blackketter
Copy link
Copy Markdown

blackketter commented Apr 17, 2021

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.

@blackketter
Copy link
Copy Markdown

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.

@blackketter
Copy link
Copy Markdown

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.

@blackketter
Copy link
Copy Markdown

Ok, I had to switch back. I found the press and hold problematic for two reasons:

  1. It felt like I was being slowed down while waiting for the f key to trigger hints.
  2. I kept accidentally triggering scroll mode while typing.

@dexterleng dexterleng force-pushed the hold-key-activation branch from 81c2caa to e0b2129 Compare April 21, 2021 09:59
@dexterleng dexterleng force-pushed the hold-key-activation branch from e0b2129 to 2137460 Compare April 22, 2021 10:38
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.

4 participants