From ArchWiki

surf is a simple web browser based on WebKit/GTK. It is able to display websites and follow links. It supports the XEmbed protocol which makes it possible to embed it in another application. Furthermore, one can point surf to another URI by setting its XProperties.


Install the surfAUR package. Alternatively, there is the surf-gitAUR package for the development version.

Optionally also install the dmenu package for URL-bar


surf is configured through its config.h file. A sample config.def.h file is included with the source and should be instructive.

As with other packages such as dwm, consider using the Arch Build System (ABS) and maintaining your own PKGBUILD with sources and md5sums for your own configuration and source files.

Extended usage

Patches & additional features

There are many user-created patches available from the offical site that greatly extend the functionality of surf. Patches can be applied to both the source surf.c file and the config.h file:

$ cd src/surf-version/
$ patch -p1 < path/to/patch.diff

Tabbed browsing

The tabbed-gitAUR program can be used with surf to create a simple tabbed browsing experience.

A basic set-up:

$ tabbed surf -e

Note that to achieve a similar effect to Firefox or Chromium where upon closing the last tab, the browser exits, use instead:

$ tabbed -c surf -e

See man page tabbed(1) for more details and possibilities.


Fuzzy font in Github

Install gnu-free-fonts or add this in your ~/.config/fontconfig/fonts.conf inside the fontconfig-tags:

       <patelt name="family">

See also