I'm really bad about shortcuts and staying on the keyboard. I go to the mouse way too much for menus and other unnecessary things.
I want to be better.
How I see this working
- I'm using a program, could be anything.
- I need to do something, and I don't know the shortcut.
- I hit the 'Universal' shortcut, could be anything, should probably be configurable.
- A simple search box pops up where I type something that could be construed as the thing I'm trying to do. Could be the command name, or just a vague description of what I'm trying to accomplish.
- Then the system builds a context of the window I invoked it from, as well as OS, and probably a few other things that could be relevant, maybe other running processes (if I'm trying to invoke another process to do something unrelated to the current window).
- Using this context it searches for the hotkey I want, probably a ranked list is provided to me.
- When the list is presented in a floating window out of the way (either a pinned corner or using something about cursor/mouse position to move out of the way smartly.) focus is returned to the original application where I can type the hotkey, and then it goes away.
No it doesn't type the hotkey for you. Although I'm sure that would quickly become a requested feature, maybe it makes sense if you're on a less than full size keyboard and the shortcut is especially cumbersome.
That's it... That's the idea... Run with it internet!
Also please make it Open Source, MIT or something. And shoot me a github link.
So I wrote this and then went looking for a ref image for the pop-up search bar. I knew custom 'Launchers' were a thing. So started there... found this https://github.com/Wox-launcher/Wox so yeah, probably a plugin for that.
Honestly I think the hard part here is the database of hotkeys... Where does that come from? I'm thinking maybe a collab/scrape of https://cheatography.com/...? That could work, of course it would probably be way off if there was any customization done, but if you're customizing your hotkeys, hopefully you'd remember them(?). Also some programs offer different schemes, would probably need an option to set which scheme each applicable program is set to, this would go into the context.
Ok so Wox plugin... go...