Web Browsers With Vim Bindings #
If there’s one thing I like it’s Vim bindings everywhere. Since all Vim browser extentions suck on some level, the remaining choice I have is to use browser with built in vim bindings. To that end, there are technically a few options.
These projects are great but all have their problems. Let’s go through them bottom-to-top.
Nyxt is written in Common Lisp, making it very easy to hack on. Supports either QtWebEngine or WebKitGTK. It also appeals more to the Emacs world then the Vim world. Much like Emacs, Nyxt does have the option of Vim bindings, but they feel somewhat half baked. Then there is the problem of what little interface there is not being particularly clear. To be fair, I haven’t really given it a proper shot because it’s configured on Common fucking Lisp. Not being much of an Emacs user, I have little to no interest in learning Lisp to configure a browser.
The suckless option.
Is written in C and configured in a vimscript-esque syntax. The thing that turns me off from this browser is it being too suckless. It almost feels like surf with a slightly more accessible way of configuring it through something that isn’t a header file.
An Electron based browser.
Say whatever you want about Vimb’s performance, but Vieb makes Google Chrome seem like a well balanced product. I’ve seen it eat 25% of a CPU thread with a single tab containing nothing but the Vieb documentation.
It has a rather pretty interface and could (if the github page is to be believed) be used to interact with other Electron applications like the Discord client as if it were ran natively (don’t quote me on that, I’m too lazy to check and probably wrong).
Which brings us here.
With these changes and (if it weren’t a gigantic nightmare) Gecko support, it would be the perfect browser for me.
Other Web Browsers #
When I need to use a site that requires some JS, but still functions without enabling everything, my choice of browser is either Librewolf or a heavily configured Firefox.
From there I use the following list of extensions to make the web usable:
- uBlockOrigin (Installed by default on Librewolf)