Hacker News new | past | comments | ask | show | jobs | submit login
Win-Vind: Vim key binder for Windows (pit-ray.github.io)
218 points by philonoist 10 months ago | hide | past | favorite | 73 comments



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.


at least for the terminal, I use kitty which has a "hint" mode https://sw.kovidgoyal.net/kitty/kittens/hints/

I use this with emacs and avy + firefox and vimium and don't need it anywhere else (works across OS too)


This is extremely cool. What a testament to the Windows APIs too.


I haven't used windows in a long time but I love seeing features like this.


Maybe with this tool, 2024 will finally be the year of the Windows desktop.


I'm gonna go out on a limb and say that people who are interested this might also be interested in a tiling window manager for Windows[1]

[1]: https://github.com/LGUG2Z/komorebi


Wow, does something like this exist for Ubuntu as well?


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.


It took a long time to get it there, but my current config hasn't changed significantly in ~5 years, and it works very effectively


Same, this is something they don't tell you. That the rabbit hole does have a bottom, and it's really comfortable down there!


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?

It sounds like this app for windows does 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.


This sounds a bit like it. Haven't tried it yet, though.

https://github.com/phil294/vimium-everywhere


i3wm might be what you're looking for.


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?


For macOS users who like the keyboard, Shortcat is awesome. I'm not affiliated, just a happy user: https://shortcat.app/


I’d also recommend looking at kindavim: https://kindavim.app/

Also a happy customer here. I use shortcut and kindavim in tandem


But why is this a subscription?


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


Dang, this kindavim is kinda amazing.


There’s also Homerow: https://www.homerow.app


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!


This looks like Vimium for the desktop, I'd love to try it out at some point


Wait -- you also get a window manager for free?? This is very cool.


A very happy user of this. I mainly use it's vimium like feature. And, the author is very responsive on github.


You can already use Windows exclusively with the keyboard since at least 3.11, although I'm not sure if they've since broken some of that in 11.


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.


Start menu is also stupidly laggy. You hit start and have to wait before typing text will actually activate the search.


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.


Thanks!


Add in flowlauncher and it becomes even more useful.


Looks slick! https://github.com/Flow-Launcher/Flow.Launcher

Do you know if it does anything like what Everything does re/ tapping into Windows's underlying file database?


Looks like there’s an Everything plugin https://github.com/Flow-Launcher/Flow.Launcher#everything-pl...


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.


PowerToys Run is even slower than the Windows start menu. And I have disabled a half of the plugins including file and folder search.


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.


Might want to reinstall. Mine was also sluggish on the first installation but afterwards run swimmingly


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.


> And if you're hunting down a specific file - install Everything, then Alt+Enter -> Everything -> search to your heart's content.

Imagine your operating system's search is so bad that you allow a closed source app to hook the entire file api


I absolutely detest how I have had to train myself to pause after hitting the Windows key.


I believe that's at least partially because they rewrote it in UWP.


It’s the focus on Bing integration and waiting for web results.


Doesn't Classic Shell (or whatever its follow-up is called) fix this like it did in Win10?

If not that alone is reason enough for me not to upgrado to Win11.


start menu searching was amazing in windows 7 and completely bonkers bad in windows 10 (haven't tried 11).

It's actually hard for me to fathom how they took the best OS they've ever produced (win7) and evolved that into win10.


> and completely bonkers bad in windows 10 (haven't tried 11)

Still bad in 11. The other day it had a hard time finding notepad for some reason, even after typing in the full name.


The worst is that lots of the time you can just type “not” and hit enter and 99% you’ll get notepad. But then it’ll randomly just do something else.

God forbid you don’t disable bing search. If you don’t, that search is all kinds of fucked up.


yes! I've seen that too, especially after a fresh reboot. But if you wait a bit and search again it'll find it.


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.


It has no access keys (underlined letters in menus) which forces you to use touchpad


You can definitely navigate the menu bar with your keyboard, there's even a little search thing in there to search through the menu items.


> except for the menus just as before.

that's a huge exception


it's not discoverable in the slightest, but if you hit fn-control-f2, you can access the menus via cursor keys instead of having to use the mouse


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


It's actually listed here:

https://support.apple.com/en-us/HT201236

And so is "open the help menu" which would take you right to the menu search widget, but that doesn't seem to work at all in Firefox or Electron apps.


Indeed. With the File Explorer keyboard shortcuts, and naming folders sensibly, you can very swiftly navigate around the file system with just the keyboard.

I'm the only one at work who does this.


Can you press A to swiftly go to the parent dir and B to go to the previous dir in history (and C for the next), and D to switch to the next tab?


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.


Backspace is sufficient to go to the previous.


How is Alt-up, which requires holding a modifier and moving your hand off home row, a SWIFT alternative?


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


This is a godsend for quickly solving hardware issues when mouse is unavailable. I've also had to use the reverse (only mouse, no keyboard)


[flagged]


Your comment should be removed. It’s irrelevant.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: