# Qutebrowser


<img src="/images/qutebrowser.svg" alt="Qutebrowser" width="100px" style="float: left; margin-right: 10px; margin-bottom: 10px;" />

These days, it's more important than ever to find a good web browser: one
that's easy to use, has the functionality you want, and, most importantly,
is reasonably secure. It's also a good idea to consider the privacy features
the browser has too.

Too many of the popular browsers have privacy issues (Chrome sharing info
with Google, Edge sharing info with Microsoft, Brave sharing info with...).

Additionally, with my keyboard-driven window manager on my system
([Qtile](/technical/qtile)), I wanted a keyboard driven browser too.

Enter Qutebrowser.

# Google

I'd used Chrome and Chromium for a long time. I figured that Google probably
already knows everything about me given that I host my email on Gmail, I have
Google speakers in my house, and I have a Google tracking device in my pocket.
So what's the difference if I use Chrome or something else?

# Firefox

I haven't been much of a Firefox fan since Chrome first came out. Firefox was
supposed to be the "lite, fast" version of Mozilla's Browser years ago, but
it too succumbed to bloat. And the way the company has been run recently, I
haven't really wanted to use their products.

# Tiling Window Manager and the Keyboard

As I mentioned, I've been using Qtile, a keyboard-driven, tiling window
manager. And it was always weird for me to be able to do most of everything
on my computer with the keyboard only to have to reach for the mouse to use
one of my most-used apps (the browser).

There are plugins for both Chrome-based and Firefox-based browsers that allow
for keyboard driven browsing (I used Vimperator back in the day), but they're
all janky.

---

# Qutebrowser

Qutebrowser doesn't use Vim-navigation as a plugin -- it was designed for it.
The "Qute" part of the name comes from the Qt toolkit used to build its
interface. The browser engine uses Chrome's engine, so it works with what
Chrome works with.

Qutebrowser's interface is pretty sparse: a small tab bar at the top and a
status line at the bottom. The keyboard shortcuts are largely inspired by
the Vim text editor ('o' opens a URL, 'O' opens a URL in a new tab, 'wo' opens
a URL in a new window).

It takes some getting used to, but once you do, it's extremely flexible to use.
If I'm primarily using my keyboard, flipping back and forth between my terminal
and my browser, Qutebrowser works great. And if I'm taking a break and
leisurely browsing with my mouse, the scroll wheel works too.

How do you "click" with the keyboard? Well, you use hints. When I'm viewing a
web page, I can press 'f' and all of the visible links get a one, two, or
three (depending on the number of links) code to press. When I press those
keys, the browser does the thing (navigates to the link, enters the field,
presses the button, ...).

# Biggest Issues with Qutebrowser

## Plugins

Even though Qutebrowser uses Chrome's engine, it does not use Chrome's
extensions. So you can't install things like the Bitwarden (password manager)
browser extension. That can make entering your passwords into websites a bit
difficult. But there are solutions. I'm using
[Bitwarden Rofi Menu](https://github.com/mattydebie/bitwarden-rofi) as an
interface to Bitwarden. When I go to a website that requires me to enter
my username/password, I press the keyboard combination (Alt+Shift+b) and
Bitwarden Rofi Menu prompts me for my Bitwarden passphrase, then I type to
search for the password entry I need and press Alt+1 to have the username
and password automatically typed into the browser window.  Once you get used
to it, it flows really nicely (all with the keyboard).

## Bookmarks

There is no sense of sharing bookmarks between browsers.

## Fields

The absolute hardest thing to get used to with Qutebrowser is the modes. Just
like with the Vim editor, Qutebrowser has different modes.

### Normal mode

This is regular browsing. The keys on the keyboard don't type things, they
perform actions. Like 'f' brings up hints, 'o' opens a URL, 'd' closes a tab,
'm' adds a quickmark bookmark, and so on.

### Hint mode

After pressing 'f', links have a key code overlaid above them that can be
typed to interact with that link/object. So the keys on the keyboard interact
with the objects on the page.

### Insert mode

This is the mode when you type into a field (like sending a message in Gmail or
responding to a chat message).

When you're in Insert mode, the status bar turns green and it clearly says
"Insert mode" at the bottom.

### Frustration

The frustration comes when you click in an input field on a web page and
Qutebrowser doesn't automatically switch you to Insert mode. Then you start
typing, but instead of typing words to in reply to your friend's email, you're
typing in Qutebrowser commands (like closing all of your tabs, quitting the
application, creating quickmarks, etc).

This happens to me less and less, but it's really jarring when it happens. I
just noticed tonight that I do have a few quickmarks I don't remember creating
(so I must have been typing commands when I meant to be replying to an email
and created a quickmark on the page I was on -- probably before I accidentally
closed it with the 'd' key).

# Conclusion

Overall, I love Qutebrowser. I'm generally frustrated when I have to use a
traditional browser on a Chromebook or my phone.

I've been able to do some minor customizations that I'm going to write some
articles about in the future.

