Surf is a strange web browser. In a world where web browsers come default with the ability to:

  • sync your settings across devices
  • manage your passwords
  • block ads
  • remember your history
  • manage bookmarks

Surf’s feature list is incredibly sparse.

It is able to display websites and follow links.

That’s it. No history, no bookmarks, no search bar, no tabs! None of the features that modern web browsers insist on including. So of course I’m installing and using it.

Issues Running on Wayland

The simplicity of Surf extends to the install process, and documentation. To install you can either check to see if you package manager of choice included surf in its software repository, or you can clone the git repo and build it yourself.

If when you run surf you get the error: dk-WARNING **: 10:38:27.309: ../gtk/gdk/x11/gdkwindow-x11.c:5633 drawable is not a native X11 window it’s because you are running a Wayland session, not an X server.

The quick fix for this is to define the environment variable GDK_BACKEND=x11, but that will affect all programs that care about the gdk backend, even the ones who play better under Wayland. I fixed this by creating the following script:

#! /usr/bin/env bash
# This is a wrapper for surf

GDK_BACKEND=x11 /usr/bin/surf "$@"

named it surf, and placed it before the real surf in my $PATH. Now when I run surf from a terminal or my launcher it calls my script, passes all the arguments, and sets the correct gdk backend value.

You can download surf from the suckless website