the beguinage

qutebrowser

written 2025-06-07 17:24, edited 2025-06-07 19:54

I started using qutebrowser. It's a minimalist browser written in Python with Qt and QtWebEngine, which is based on but not Chromium that you get around in with vimlike keybindings and : commands in a statusbar. You also configure it in Python and can add your own scripting directly in config.py, though I've yet to think of use cases for me there.

Most of my config is UI colors except for

config.load_autoconfig(False)
config.set('auto_save.session', True)
config.set('tabs.padding', {
    'bottom': 3,
    'left': 6,
    'right': 6,
    'top': 3
    })
config.set('tabs.title.format', "{audio}{private}{index} {current_title}")
config.set('tabs.title.format_pinned', "{index} {current_title}")
config.set('tabs.position', 'left')
config.set('tabs.show', 'multiple')
config.set('statusbar.padding', {
    'bottom': 2,
    'left': 4,
    'right': 4,
    'top': 2
    })

Everything that starts config.set can be changed with the :set command like in Vim. I just like the Python string format.

I've used Sidebery in Firefox and Librewolf forever, so moving the tabs left was a first move that turned out to be more intuitive for the K shortcut to select the previous tab and J to select the next tab.

It really is a lot better for me than Vimium, my other go-to extension, because so many websites I use have conflicting keyboard shortcuts in their UIs. qutebrowser's solution for this is a mode called passthrough, which basically pauses its recognition of qutebrowser and custom keybinds so you can interact with the website's.

The only extension I miss is XKit Rewritten, which I need for Tag Replacer and blocking sponsored posts that qutebrowser's adblocker can't get. My solution is likely to study XKit and lift bits of code for my own qutebrowser/userscripts directory, but oughhhh. For now I just open Firefox for any XKit features involving the Mass Post Editor.

My config is here.