Until now, my browser of choice for Arch Linux has been Opera. It works great out of the box and it handles the Retina display near-perfectly. But it also comes bundled with some minor annoyances that I’d rather live without:

  • Offering to remember passwords
  • Automatically restoring windows when re-launching
  • No way to always open to a blank tab or window
  • Some “speed dial” feature that’s just a big screen of huge bookmark icons
  • Control+W for whatever reason won’t close the last tab

Those are just a few annoyances, and not one is a big deal by itself. I’m sure that most of the behavior I don’t like can be configured away, but that’s a manual process and is something I’d rather avoid each time I format and re-install. And I format and re-install almost daily because I have automated it.

Installation

I’ve found it best to install uzbl-git from the AUR. Navigate to that page, download the tarball, and install it like any other package from the AUR:

wget https://aur.archlinux.org/packages/uz/uzbl-git/uzbl-git.tar.gz
tar -zxvf uzbl-git.tar.gz
cd uzbl-git
makepkg -s
sudo pacman -U *.tar.xz

That gives you three binaries: uzbl-event-manager, uzbl-core, uzbl-browser, and uzbl-tabbed. You’ll probably want to run uzbl-browser or uzbl-tabbed; both include a reasonable set of features, the latter also having support for tabbed browsing.

You may also manually need to install python-six:

sudo pacman -S python-six

And for a decent set of fonts, ttf-freefont:

sudo pacman -S ttf-freefont

Configuration

The out-of-the-box configuration needs a few tweaks outlined below:

Symlinking the Global Configuration

Uzbl looks for it’s configuration in /usr/local/share/uzbl, but the AUR package installs it to /usr/share/uzbl. To remedy:

sudo ln -s /usr/share/uzbl /usr/local/share

Certificate Configuration

Run either uzbl-browser or uzbl-tabbed; doing so will copy the global configuration to your home directory in ~/.config/uzbl. Once those copies have been made, you’ll need to modify ~/.config/uzbl/config to correct the path to the system-wide trusted CA certificates bundle:

set ssl_ca_file /etc/ssl/certs/ca-certificates.crt

Zoom Key Bindings

Also in your ~/.config/uzbl/config, you’ll want to change the binding of the T shortcut from “toggle zoom_type” to “toggle zoom_text_only”:

@cbind T = toggle zoom_text_only

I’ve also found it useful to change 2 binding to zoom 1.5x instead of 2x:

@cbind 2 = set zoom_level 1.5

Basic Usage

A great way to find out what can be done is to browse through your ~/.config/uzbl/config to see the default key bindings. Below are some of the highlights.

Also be aware that uzbl operates in two modes: command mode and insert mode. Insert mode lets you type things into HTML forms. Command mode interprets keystrokes as commands sent to uzbl. It’s like vi.

When in insert mode, press escape to get to command mode. In command mode, press i to get to insert mode. You can also click on a form control (giving it focus) to enter insert mode.

To tell which mode you’re in, look at the bottom-left of the status bar. If the status bar isn’t visible, type t in command mode to toggle it back on.

Retina Display

Some sites render perfectly with the retina display and some don’t. It depends on which units the website uses to specify dimensions. If a site appears too small, use the 1 and 2 to switch to 1x and 1.5x zoom respectively. Also, when viewing at 1.5x zoom, press T to toggle between zooming only the text vs. both text and images.

Changing the URL

  • o: (lower-case) open a new URL
  • O: (upper-case) edit the current URL
  • b: navigate backward
  • m: navigate forward

Searching

  • gg: search google
  • ddg: search duck-duck go