-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Vi shortcut keys #12
Comments
The Mac OS text editing shortcuts and the Emacs ones require modifiers to be held down to activate, which has the benefit of not conflicting with the character sequences (regardless of whether you're in element-based nav mode, or grid-based nav mode). To support vi bindings, we'll either need a way to enter a special mode that disables sequence entry, or alternatively (my preference, I think) we could add a new way to invoke Scoot. Currently we have these global shortcuts for activating Scoot:
We could add something like:
When Scoot is invoked this way, we wouldn't need to worry about any bindings conflicts. (What should this mode be called? Manual mode? Headless mode? Naming things is hard...) [Sidenote: all these global keyboard shortcuts really need to be customizable. That's being tracked in #7.] As for the vi shortcuts themselves, I'm not familiar with the bindings (apart from a passive understanding of what hjkl does). What should all the bindings be (and are there any special expectations around how they should compose together?). It would be really helpful if you (or another interested user) could augment these tables with the equivalent (or equivalent-ish) vi bindings: Cursor Movement
Clicking
Scrolling
(p.s. thank you for the kind words about the project!) |
I think adding a way to get into Scoot without entering into one of the 'jump to' functionalities would be nice in general. I know there is a way to hide the grid when in grid view but would be nice to be able to immediately jump into a view that is not cluttered by that. Perhaps a
Below you can find what I think would make the most sense based on typical vi defaults. Another potential consideration might be to use the Cursor Movement
Clicking
Scrolling
|
I would attempt to help develop but I currently don't have the time to and don't have a very good grasp on Swift. |
@mjrusso I tried to sponsor you on GitHub but saw you didn't have that set up yet - would love to see vi bindings/shortcuts here too. |
I've implemented a new mode -- "freestyle mode" -- which doesn't bring up the grid or element views. (See b884a3d. Not in main yet because it needs to be documented in the README.) Currently invoked with ⇧⌘L.
Thanks for filling in those tables. I've started porting them over, but ran into a few conflicts with existing shortcuts. In particular, this proposed cursor movement shortcut conflicts with an Emacs/system shortcut:
And all of the proposed scrolling shortcuts conflict (with the exception of Are there any alternatives to these conflicting shortcuts that would still make sense for a vi user? If not, seems like we'll need an explicit setting for explicitly enabling/disabling vi support. I was hoping to avoid this, but it might be inevitable. |
Ah. This approach didn't occur to me before, but it definitely seems like an elegant way to also get vi support in to the element-based nav and grid-based nav modes. For this, though, I'd definitely only want it enabled for users that explicitly want to opt in to vi bindings. So: sounds like adding an explicit setting for enabling/disable vi support is the way to go. |
Thanks @niftylettuce :) I'm not planning on setting up sponsorship at the moment, but I appreciate the sentiment! |
Yeah. I would probably have an option for either/or. I think most users who would choose to use vi shortcuts would prefer not messing with eMacs at all and probably vice versa. |
This is shaping up pretty nicely. Major outstanding work is updating the documentation (for both the vi bindings and freestyle mode); once that's ready I'll cut a release. (I punted the settings UI, as that's a can of worms I'm not ready to open right now. For now, you'll need to do a |
Docs are updated, and I've landed the changes. (I'll close this issue when I cut a new release.) |
New release is out! Give it a shot and let me know what you think: https://github.com/mjrusso/scoot/releases/tag/v0.8 |
Would love if we could set it to use vi key shortcuts!
This is a super cool project! Have always wanted to use my keyboard to control the mouse!!!
The text was updated successfully, but these errors were encountered: