mjrusso / scoot

Keyboard-driven MacOS cursor actuator
BSD 3-Clause "New" or "Revised" License
339 stars 14 forks source link

Persisting Grid Layout #30

Open kujohn opened 2 years ago

kujohn commented 2 years ago

Just want to say this is amazing. Much cheaper than hardware eye tracking (Talon, Precision Gauze) for not using the mouse.

Would be great if the grid layout could persist surviving the mouse click. There are times where you want to narrow down a tree that requires multiple grid activation.

mjrusso commented 2 years ago

Thanks for the kind words, and +1 for the feature request!

Do you have any preference on how this persistent mode should be activated? Seems like there are two high-level options:

  1. Introduce a new "sticky" mode that (when activated) prevents Scoot from bringing itself to to the background after a click, or
  2. Look for a special keyboard modifier on click; if it is held down, then don't bring Scoot to the background after click

For (2), we don't really have any available modifiers, because Scoot will automatically pass along any pressed modifiers when simulating a click. From the README:

Scoot will pass along any pressed modifier keys when simulating clicks. This means that Command-click, Option-click, Control-click, and Shift-click are all supported (or any combination thereof). For example, ⌘↵ will Command-click the left mouse button at the current cursor location, ⌥↵ will Option-click, ⌃↵ will Control-click, ⇧↵ will Shift-click, etc.

Come to think of it, we don't currently use the space bar for anything, so that could technically function as a pseudo-modifier for (2), but that might be ergonomically problematic to use.

Another important factor for choosing between (1) and (2) is how many "persistent" clicks are needed in a given session.

Let me know what you think.