-
Notifications
You must be signed in to change notification settings - Fork 4
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
Neo Mousekeys' grid only accepts wasd, not hjkl #1
Comments
Hi @brimwats, thanks for the feedback. If you want to change the grid keys which are currently the same as the move keys (wasd), then you need to change this part: grid-mode.shrink-grid.up=+up
grid-mode.shrink-grid.down=+down
grid-mode.shrink-grid.left=+left
grid-mode.shrink-grid.right=+right to: grid-mode.shrink-grid.up=+k
grid-mode.shrink-grid.down=+j
grid-mode.shrink-grid.left=+h
grid-mode.shrink-grid.right=+l The part that you've tried to change is related to the hints, and it does not affect the grid. Some more explanationAt the top of the configuration, some key aliases are defined. For example, we have: key-alias.up=w That means that any reference to grid-mode.shrink-grid.up=+up It is equivalent to saying: grid-mode.shrink-grid.up=+w The |
Ahhh that was an obvious one I missed! Thank you for pointing that out! I hope it's at least helpful for documentation writing
edit: nope, it's for the smaller grid that appears after pressing shift on the first round of F! I tried modifying that line to see if I could get it to be only keys that appear on the right hand side of a spit keyboard (i've mapped moustmaster to a razer tartarus with good success, but it didn't seem to work so I mist have misunderstood again! |
It's probably worth mentioning that my original confusion happened because of the line in the documentation that says "Shrink the grid in one direction with h, j, k, l."; it sounds like it actually is w a s d unless set in the aliases, yes? |
Definitely. Thank you so much for asking those questions and sharing your feedback! You're correct about the hints. In the neo-mousekeys configuration I have implemented 2-pass hints. The second pass is optional and is for refining the mouse position further in case the first hint pass was not precise enough. Like you've discovered, the second pass is triggered if you hold leftshift while selecting the hint of the first pass.
Interesting keyboard, I'll have to look into it!
You are 100% correct, I made a mistake in the documentation. That configuration is supposed to use wasd for both mouse movement and grid shrinking (no hkjl), but I got it wrong in the documentation. Sorry about that. I will fix it now. Thanks! By the way, I'm not personally using this configuration (neo-mousekeys) but I believe it is appropriate for most people, that's why I present it as the recommended configuration. The fact that I'm not using it also means that I have not spent as much time fine tuning it as I did for my personal configuration.
If you have any suggestions for improving that configuration, let me know. Anyway, thanks again for the feedback! ❤️ |
I missed replying to that. Did you manage to change the hint keys for the first hint pass? |
No matter what they're changed to it doesn't seem to affect the grid. I still see this;
I think a wasd configuration is the correct for most people, yeah. However, as you note
There are some issues like this on a vertical screen:
This would be fantastic! As it stands I currently use Fluent Search's screen search feature. The settings look like this: Documentation: https://fluentsearch.net/posts/fluent-search-features-guide Their code is open source iirc so maybe you can take some inspiration from that? |
Hi @brimwats, Let me try to explain how hints work and from there we'll try to resolve the problems you've had. In the neo-mousekeys config, there are 3 modes that define a hint grid: hint1-mode which is for single-pass hints, hint2-1-mode which is for the first pass of 2-pass hints, and hint2-2-mode which is for the second pass of 2-pass hints. The hints are defined by a few things, mostly:
The default values for 1., 2. and 3. allow me to get the following hint layout on a 1920x1080 screen:
Since your screen is vertical, these defaults don't work well, especially because of hint1-mode.hint.grid-max-row-count=45
hint1-mode.hint.grid-max-column-count=26
hint1-mode.hint.grid-cell-width=72
hint1-mode.hint.grid-cell-height=42 Let me know if that works for you. Now, let's tackle the problem you have with changing the hint keys. We have 3 hint modes in the neo-mousekeys config:
hint1-mode.hint.selection-keys=a b c d e f g h i j k l m n o p q r s t u v w x y z
hint2-1-mode.hint=hint1-mode.hint
hint2-2-mode.hint.selection-keys=h j k l ; a s d f g q w e r t y u i o p z x c v b If you want to change the hint keys of the first pass, you should be able to do that by explicitly defining the selection keys of hint1-mode, like so: hint1-mode.hint.selection-keys=q w e r t y 1 2 3 4 5 With this, both hint1-mode and hint2-1-mode will use the selection keys you specify.
For some reason I never heard of Fluent Search before. It looks very cool. I see that it does context-aware hints which has both benefits and drawbacks (when compared to "dumb hints" that cover the whole screen). Context-aware hints only show hints above actual app widgets (buttons, textboxes, menus, etc.) which reduces the clutter (no unnecessary hints), but on the other hand they don't always allow you to move the mouse exactly where you want it to move. That's the reason why I did not look into context-aware hints (yet). For my reference: when selecting a hint in Fluent Search, you can press 1, 2, 3, or 4 to choose whether you want a left button click, double left button click, left button press and hold, or right button click. In mousemaster, we have the bricks we need to implement these purely in the configuration file, except for the double click: we have commands for pressing a mouse button and releasing it (PressLeft and ReleaseLeft), but we'd need something to trigger a double click. In my config (which is optimized for a single hand usage), this is how I currently do clicking after selecting a hint: assuming there are a bunch of hints on the screen, if I want to select the one labelled Question for you @brimwats: how do you feel about the default normal-mode activation combo (ctrl + e)? I know that it's not ideal since many apps use that combo. I'm also wondering if we need a combo to go directly to grid mode and hint mode. Currently, if you want to go to grid mode you need to first go to normal mode (ctrl + e), then grid mode (g), which is not ideal (same for hint mode: ctrl + e, then f). As always, thank you for the very useful feedback, and for introducing me to Fluent Search. |
=Sorry for the delay! I wanted to get some experience using the app! First a couple of questions!
I wanted it to be grey. However there is some blue flickering when I type that I cant figure out where it is coming fyorom: Now your questions!
works on both a vertical and horizontal screen well!
I haven't used the multi click features of FS too much, generally I just use it to jump from one screen to another (you hit shift and it switches to another screen. To give you an idea of what I have, I have a 27" landscape middle screen, a 24" lanscape screen above it and 2x vertical 24" screens to the left and right. A lot of screenspace! A key to jump to the next/previous monitor in this context would be good. Here's how DisplayFusion does it: (I don't know what code they use to do this, but it's s scripted function within DF)
as far as other programs, it only bothers me in word (center text) and so I have to go crtl e ctrl e q and Directory Opus, but I just changed the dopus setting. oh yes! 5.
I don't feel like it's burdensome, but I recognize lots of other people will want these |
imo def no, most people would want the range you have right now. I think the second pass is the sane and reasonable choice for most people; if you want a smaller selection using just the home row 2,
works perfect!
WOW that is SO COOL i love it! that's just a neat feature in general! big +1 from me
This is where we run into limitations with common hotkeys! I think crtl+alt If you ever want a peep at programs defaults, get an account at https://keycombiner.com (free) and poke around their big program libraries (like word, vscode, etc).
Seems the solution (for me, with my incredibly limited knowledge) would be something like what Alt+Snap or others do (aka using Autohotkey window types using Window Spy (https://amourspirit.github.io/AutoHotkey-Snippit/WindowSpy.html). So here's what that looks like in AHK for a script that only runs on a matching window ; Auto-execute section.
Hotkey, %f_Hotkey%, f_Jump2ActivePath
;Hotkey, %f_HotkeyCombo%, f_Jump2ActivePath
return
f_Jump2ActivePath:
;validate the correct dialogue type
WinGet, f_window_id, ID, a
WinGetClass, f_class, a
; Don't display menu unless it's a dialog or console window
if f_class not in #32770,ConsoleWindowClass
return
Will give it a spin! |
I've implemented some of the things we've been talking about:
1., 2., and 3. are purely configuration changes (see what changed in neo-mousekeys.properties for the new screen selection mode). I've also updated the neo-mousekeys documentation: |
This is so great! It is working well initially, take it for more of a spin over this week. Thinking through other features that all layouts might be able to use; I'm not sure how 'smart' the commands are, but potential ideas:
|
Good to hear! Let me know how it goes!
I think I'm able to do something like that in my config. I can snap the cursor to the active window's center and edges, and for the top edge I've used an inset so that the cursor lands inside the window's title bar (and not right on the edge). It looks like this: java_RLSRtDqcg0.mp4Is that roughly what you are talking about? Note: in this video, I grab the edges and then move them around (resize) using the grid mode. I also select the title bar and move it around using the grid mode. It's of course possible to not use the grid mode and move the cursor without it. (Oh and in this video, green indicator means I'm pressing a button, red indicator means I'm not pressing anything).
Unfortunately, it doesn't know about where these buttons are. However, Windows has built-in shortcuts which I personally use all the time to minimize/maximize/close a window, not sure if they're good for you too?
|
So bad news for the ctrl-e command.
Microsoft is starting to use that (notepad and some other windows apps only right now)
omg that is extremely cool! yes, that's exactly what I was thinking of
🤯🤯 it has been a long time since someone has told me a shortcut I didn't know about, and to find out about alt+space this way! I've been using that for a long time for quick launchers like karabiner, fluid, launchy, and listary. Now I have to do some thinking about if I keep it as "search apps" for fluent or not! I've had some success combining Alt+Snap https://github.com/RamonUnch/AltSnap with mousemaster, in case you were curious about tools that can be used with MM! |
Good catch! I always thought Ctrl + E was not ideal for mousemaster. I could definitely not use it myself as it's a default key combo in my IDE (IntelliJ) which I use dozens of times a day.
Great. I'm trying to think of an ergonomic/intuitive way to introduce it in the neo-mousekeys config. Maybe a key that you press and hold (kind of like the jump key J). As soon as you press it, the cursor moves to the center of the active window. Then, while still holding that key, you can snap the cursor to the edges of the window using the direction keys. Or maybe a separate key for moving to the center of the active window (kind of like the current H key). But we're running out of available keys 🤔.
Isn't Karabiner macOS only? Never heard of fluid and listary before, I'll look them up!
Looks very useful, I'm going to have to try it out. Thanks for sharing! |
Hi @brimwats, sorry for the delay! I've added a new window mode that does what we were talking about: Window Mode (hold leftshift then press g in normal mode)
I'm not sure if these keys are intuitive or not for that feature, you tell me if you have a chance to try it. |
First initial feedback! I think these
(or whatever their default values) should be in the top of the config file bc otherwise folks will have to go through the new config file side by side with the old one |
Thanks for letting me know. Very strange, my Windows doesn't complain about it. I'm not sure what is triggering the alert you got. The good thing is that the mousemaster.exe build from the release page is fully automated and run on GitHub's VMs (it's not built from my machine). There would need to be malicious code in the code repository for it to end up in mousemaster.exe. |
Yeah I'm not worried about it, more an FYI for you in case others report it! |
This doesn't work.. I suspect because g is taken by grid and there's no window-mode key-alias?
edit: ah! got it, it wasn't clear that WASD were the keys I should be pressing (I read direction keys as arrow keys! |
Ah yes, you're right, that part is unclear.
Good point too. |
Setttings:
in vscode everything after ; is greyed out, but editing doesn't seem to do anything.
![image](https://private-user-images.githubusercontent.com/73113656/299159198-fe9fd511-ec35-4c22-9f11-f3c64957addf.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk1NDM3MzQsIm5iZiI6MTcxOTU0MzQzNCwicGF0aCI6Ii83MzExMzY1Ni8yOTkxNTkxOTgtZmU5ZmQ1MTEtZWMzNS00YzIyLTlmMTEtZjNjNjQ5NTdhZGRmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjI4VDAyNTcxNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTMyM2EyMGI0ZmE4Yzk5ZDI2MjljMjQxODVhYjliNGRhNTU3OTNjZjVjM2FlOWVlOGQ2YjYyZTQ1YWYxNzQ3NjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.SJH6ruwR-HaEY9V94VrV6YasuZe3k39q7i-gHEQCNPY)
trying to use hjkl in grid mode but only wasd works there. Any ideas?
The text was updated successfully, but these errors were encountered: