My new favourite web browser (Vieb)

2024-10-04

A personal history of web browsers

Fun fact about me, I used vim-like keybinds in my web browser before I ever used vim itself. I can't remember if it was just before or just after I installed linux for the first time back in around 2016, but at some point I was browsing through the firefox addons store and I came accross, I think it was called "vimperator". An addon that adds vim-like (or should it be "vi-like"?) keybinds to firefox. I didn't really know what that meant but I installed it anyway becaues it seemed interesting, and I fell in love with it very quickly. So when it came time to pick a text editor to edit config files and whatever else I was doing in my baby linux years, I already knew that I wanted to learn vim.

After some time, I discovered qutebrowser https://qutebrowser.org/, which if you don't know, is a browser inspired by that vimperator addon but with all the functionality built in, and a whole lot more. It's written in python and it uses qtwebengine. I used it for quite a few years as my main browser on this very thinkpad x220, and I'd say it was definitely my favourite web browser.

What is the advantage of something like qutebrowser over a firefox addon like vimperator (which was discontinued and replaced by tridactyl, which does the same shit). Well firstly, the way addons work is that they don't activate until a page fully loads. That means that when loading heavy web pages (which sadly one has to do quite often), even if the main content of the page has loaded in, you can't actually use any keybinds until you wait for the whole thing to finish. This gets really annoying really fast. Also, firefox blocks addons from working on certain pages for perfectly reasonable security reasons, but not being able to scroll with hjkl on the settings page is also really annoying. Finally, qutebrowser is built from the ground up to be extensible and configurable by the end user in the linux style, with a big ass config file in your .config directory. Compared to firefox where you just don't have the same level of control, and even what you do have is much less intuitive, clearly not designed to actually be touched by the end user. To get around this, you end up using addons to configure your browser, which slows the whole program down even more than its already slow and bloated default.

The main advantage of firefox over qutebrowser however is also that last point: addons. In particular, ublock origin. Qutebrowser does have adblocking functionality, which works well enough most of the time, but on particularly intrusive and evil websites, particularly youtube, the adblock doesn't work. Blocking youtube ads is a major downfall of qutebrowser. However, there are workarounds that the community have come up with. When I mained qutebrowser, I had a custom bind which would open youtube links through invidious https://invidious.io/, which worked well enough for me. Unfortunately, youtube started to become very aggresive in their stance against third party frontends and scrapers, and they began blocking or severely throttling invidious instances, as well as sending scary takedown requests to their opperators. Invidious still works to some degree, but you will have to reload and change instances a number of times before your video will actually start playing. This unfortunately led me back to firefox.

Recently, I noticed that firefox (again, technically librewolf) was actually excruciatingly slow at loading pages. Even when running in safe mode, just loading the youtube homepage would take almost 30 seconds. Loading even fairly simple web pages is just unaceptably slow. Now I'm not sure how much of this is firefox's fault vs the fault of the extremely bloated state of the web thanks to decades of missmanagement by the W3C, but it motivated me to look again for other options.

After some digging and experimentation with a few different browsers, I came accross vieb https://vieb.dev/. Similar to qutebrowser, it's a vim-keybind focused minimal and highly configurable web browser for "enthusiasts". Unfortunately it seems to be even more obscure and I think that's a shame because after a day of testing and configuration, I have tentatively made it my defauly browser.

Vieb vs Qutebrowser

Pros:

Cons:

Youtube ads: the final boss of weird web browsers

Even though Vieb has better adblock than qutebrowser, and claims it should be able to block youtube ads, it in actuality does not, at least not on my machine. So how to watch youtube? At first I thought of using freetube https://freetubeapp.io/. The problem is that I am subscribed to over 700 channels, and freetube simply cannot handle that. As in, it physically will not let me import all of my subscriptions. The other problem with freetube is that it doesn't have keybinds! How am I supposed to use an application where I can't scroll with hjkl. What do you think I'm some kind of savage? You expect me to use a m-m-mouse??? Insane. Instead, I set up a simple bind in my .viebrc which opens whatever the mouse pointer is hovering over in mpv, which works fine for now, if a bit slow to open. At some point, youtube was throttling and blocking attempts to stream via mpv, but it seems to be working now? Possibly due to updates to yt-dlp? Only time will tell if this is viable. If not, I'm considering trying to figure out how freetube works and patch in keybinds myself.

So that's my opinion, if you like qutebrowser or vim in general, check out vieb, severely underrated web browser.

If you have any comments regarding this post, please feel free to contact me via the links on the homepage.