I wanted to build something like this but for Linux, especially the vimium-like hints that would work in any app. I even made a prototype by abusing the AT-SPI2 accessibility API. Unfortunately, querying AT-SPI2 for all buttons takes too long in complex apps. And even if it was fast, many apps (especially non-GTK ones) implement accessibility poorly or don't implement it at all, so I abandoned the project.
I guess it would be possible to make a framework specific implementation, for example by replacing the GTK shared library with a modified version, but that's too much effort and I lost interest in the whole 'mouseless' thing anyway.
I have built this here https://github.com/phil294/vimium-everywhere, and it works okay-ish performance-wise. For example, generating the click hints on this thread on Firefox takes (including FF's UI elements) takes one second, perhaps less on a fast machine. I use it on a daily basis. It needed a lot of optimizations to get to that point though. There are also a few alternatives listed.
And almost all applications support at-spi once you set some env vars! Including electron apps etc., see the readme
The thing about linux is that ime you can just implement this individually across all (most) the apps I use. I have vim-like binds for mpv, my pdf reader, terminal emulator/terminal file manager, image viewer, and of course my window manager.
The ones where I don't are the ones where it would be too complex to be taken care of by an external app. A DAW would need its own core implementation of modes for example, same with something like Krita and in that case it would probably not even be advisable.
There's a bunch of things like i3wm. But I have to give a big warning. These are very addictive and you'll go down rabbit holes making your system beautiful and easy to use (for you and absolutely no one else) that you may lose lots of productivity (well... work productivity?). So caution, do not visit /r/unixporn and do not search tools like picom and rofi. Sure, the life looks glamorous but it is an addiction worse than MTG or Warhammer, albeit cheaper. Fuck it, who am I kidding, go for it.
I use xmonad as a tiling wm, which I guess is quite similar to i3, but what I mean is that you can control all apps with vim like experience a la vimium.
For example controlling gimp with vim key bindings.
Does i3wm support that?
Programs that highly rely on their GUI are probably not the best for vim-like binds, imo they're the exception. And even if you did want that, you'd need a whole reimplementation from the program itself, to include modes.
Looking at the usage page of the docs leaves me confused. Does this rebind the ':'-key system wide??? How would that work with using the key in normal text entry fields, or in vim?
Yeah I was ready to pay right up until I realised it was a subscription. Man do I miss the days when you used to buy software and only pay for the upgrades
Thanks for mentioning this. Just installed it and it’s just what I’ve wanted. Been using vimium in the browser for a long time but I was always frustrated with every other app that I couldn’t use my keyboard to navigate.
The first thing I did is to check if the easyclick functionality uses UIA. It does. I am very satisfied. For those interested, Windows Kits comes with a tool called INSPECT.EXE, which allows you to interrogate UIs. Very cool!
A lot of that functionality was neutered in Win10 and even more was totally removed in Win11, imo the issue is that apparently all the UX devs at microsoft use macs and are trying to MacOS-ize windows.
Specifically the start menu is no longer nearly as keyboard friendly as it used to be, but other parts are also broken, settings is supremely broken wrt keyboard nav, the context menu is just a mess in Win11.
Much better to install PowerToys and hit Alt+Enter to find whatever exe you need. And if you're hunting down a specific file - install Everything, then Alt+Enter -> Everything -> search to your heart's content.
Speaking of PowerToys, does anybody know of similar generic useful tools for Windows? I know that a lot of such apps exist for macOS, but I haven't found many for Windows.
There's Monitorian to change external screen brightness, eartrumpet to give a better audio settings experience in your tray and AutomaticDarkMode to change your system theme based on some conditions (such as time).
These are the utilities I always install.
Apart from that I use ExplorerPatcher because win11 took a big step back in the start menu and task bar flyouts.
The best is https://fluentsearch.net/ that supports on screen keywords search as well as a powerful launcher and file indexer. For screen search it supports UIA as well as image/text based on OCR like search. It is the best and more accurate than win-vind.
Confirming the other comment - I've always found it to be much faster than the start menu, on every corporate issued ThinkPad I've used in the last year (3). Maybe something is weird on your machine.
I find it to be much, much faster. Not sure what might be the difference between our experiences here. I basically dont open the windows menu bar anymore, especially since the powertoys run bar has a shutdown keyword too.
I… what? OSX has been very keyboard friendly for as long as I can remember. Sonoma is buggier than previous versions, but you're been able use the keyboard to navigate most UI widgets except for the menus just as before.
What does that have to do with it? They're clearly going for the aesthetic without considerations for how users actually interact with it. It's likely they don't even know how what keyboard navigation is like on MacOS, because they don't use keyboard navigation.
Thanks for the tip, I'm aware of it, but it breaks the core benefit of Alt+X : guaranteed repeats, with fn-control-f2-F-Enter you can't be certain to open the File menu since there might be another menu starting with F
Predictability is a core feature of UI design
Anyway, personally I use a better alternative to fully recreate the Alt+X to open a menu via keyboard maestro, so I've sovled the issue for myself, but it still is a core Mac deficiency contrary to the "OSX has been very keyboard friendly" claim
Indeed. With the File Explorer keyboard shortcuts, and naming folders sensibly, you can very swiftly navigate around the file system with just the keyboard.
Sorta? Alt-uparrow navigates to the parent directory. (Also, Alt-left/right arrow will move back and forth through your folder history.) Ctrl-Tab/Ctrl-Shift-Tab will switch among next/previous tabs.
Alt+up arrow gets you to the parent directory. Alt+left arrow gets you to the previous folder in the history. Ctrl+tab gets you to the next tab, or ctrl+[number] to go directly to a specific tab.
If it's not for you its not for you, but pretending that a keyboard shortcut of alt plus a key is somehow an entirely different concept and outside the realm of alternative is pretty hilarious.
I've capitalized that word specifically for you, but yes, if ignore speed, then bad keybinds are in the same realm.
Likewise, having a single E key to jump down by 10 items in your realm would be no different than pressing the down arrow 10 times , or using search to find the file which ends with "_abc" is no different than using your eyes to find all such files and then using a cursor to nagivate to them and select - after all, these are all keyboard-only (except for the find part)!
lol, I just figured out I'm being trolled. It was subtle at first, but you went a little over the top with the comic book guy style 'well akshully' stuff at the end that let me suss it out, but you really did have me going for a while. Kudos.
Beats the hell out of using the mouse, which is what my colleagues do.
I'm not much one for home row. I'm an evolved hunt-n-peck, as typing programmes made my fingers hurt. Works for me, and in an office of secretaries, I'm one of the fastest typists.
Not really, many operations are too painful to do using the default design primitives, the short jump labels for all the UI elements that this app has is an especially good paradigm
I guess it would be possible to make a framework specific implementation, for example by replacing the GTK shared library with a modified version, but that's too much effort and I lost interest in the whole 'mouseless' thing anyway.