1. 14

Surf is a simple, lightweight browser from Suckless Tools, the same people who brought you dmenu and dwm. When compiled and configured right, Surf is incredibly robust and stable, able to handle most websites extremely well, and it has a clean and simple layout without buttons and bars to encroach on the web material you’re reading. Unfortunately, Surf is underdocumented, so most who try Surf give up after a few minutes, moving on to Firefox or Chromium or Palemoon or Midori. This web page serves as the needed documentation to make Surf a pleasure to work with.


  2. 8

    I have tried surf and ran for for quite some days, but there were a number of problems I had with it.

    • It is unstable. It crashed way too often for me to be used as my day-to-day browser.
    • I know no reliable way to do adblocking with it. Just fiddling with /etc/hosts is not really enough; many pages look weird if you do that. Adblockers in Firefox have never shown this problem for me. And keeping /etc/hosts up-to-date is a pain.
    • Enabling JavaScript for a page only on demand does not work. I want it off by default.
    • surf rejects a number of SSL websites Firefox accepts for no obvious reason (especially bad with lets-encrypt sites). In contrast to what the article says, surf does support SSL, though. Just not in the stable version I have found.
    • I have no idea how to create the facility of a plugin I very much like, Flagfox. It displays a little country flag in Firefox' URL bar depending on where it thinks the IP is from.
    • Bookmarks. I know I can manage them with scripts, but until now I have been too lazy for that, since a proper script would allow me to search the bookmark list and then directly follow the link. I often find myself remembering the title of an article I read and bookmarked, but not the page. So it is required that the bookmark link is stored together with the title and can be selected by either title or URL. As said, possible, but I’m just too lazy for that.
    • How to forbid 3rd party cookies? How to delete all cookies after quitting the last surf instance?

    There were probably more points which I don’t remember anymore.

    Now I’m back on Firefox and have turned on the start-search-by-typing option. This gives me the required level of keyboard navigation I need – I can just type in the text of a link and Firefox will select it. There is a surprising amount of useful keyboard shortcuts in Firefox that is a little bit hidden (for example, by typing ‘ [single quote] with the start-search-by-typing option enabled you search only the links of a page, very useful).

    1. 2

      The SSL woes are more than likely because Firefox caches sub-CAs it sees in the wild to handle all the badly configured webservers that do not serve the whole certificate chain when connecting.

      I really wish browsers did not do this as it masks a problem that to the sysadmin running the site looks just like a temporary glitch in the matrix that they can ignore.

      I hate the web.

      1. 1

        For adblocking, you could use http://git.codemadness.nl/surf-adblock/ with surf-webkit2.

        1. 1

          surf rejects a number of SSL websites Firefox accepts for no obvious reason (especially bad with lets-encrypt sites). In contrast to what the article says, surf does support SSL, though. Just not in the stable version I have found.

          There are some issues with TLS, at least on my Fedora system (visiting the badssl.com dashboard). For example, no host matching, no check for expired certificate, etc.

        2. 4

          There’s ongoing work by Quentin Rameau to port surf to webkit2. See the branch here. We’re planning to make this default as soon as it is stable. 99% of all stability issues with surf are due to the fact that webkit1 is a mess and more or less deprecated.

          1. [Comment from banned user removed]

            1. 1
              • It really bothers me that on macOS – a system designed by one company – the key bindings for switching tabs are different in Safari and Terminal.*

              Cmd-shift-[ doesn’t work?

            2. 2

              While I like the idea of slim browsers, the general consensus is to avoid browsers using ‘WebKit/GTK+’. OpenBSD now warns users when they use a browser that depends on www/webkit:

              --- +webkit-2.4.11p1v1 -------------------
              !!! WARNING: WebKitGTK+ 2.4 is known to have many security vulnerabilities that
              !!! will NOT be fixed. Avoid browsing with it

              Here is a blog post that goes into detail about the issues around existing webkit based stuff.

              1. 4

                The above info is incorrect as per the post it links to. WebkitGtk+ 2.4 is old and insecure, since it’s a branch of WebkitGtk+ not maintained anymore since quite some time. Newer versions of WebkitGtk+ are properly maintained. Just take a look at the actual post you linked to.

                1. 3

                  I think the key takeaway is that surf uses 2.4. I guess I should have been more explicit when I said “browsers using ‘WebKit/GTK+’.”, I assumed the context of the original article would be applied.

              2. 1

                Since someone mentioned Webkit, I’ll just stick the question in here. As a Gentoo user, I bother about compile times, and compiling WebkitGtk+ takes more than an hour on my system. Even Firefox compiles faster. If I were to develop an application that should render some simple HTML e.g. for help pages, which alternative embeddable renderers exist?

                1. 4


                  librocket is pretty enormous but it got used for the UI in Warsow, dillo/netsurf are probably also enormous and I don’t know anything that uses them.

                  1. 4

                    It’s simply not possible to write a small, clean browser implementation which conforms to current web standards. If you’re willing to stick to a buggy and incomplete subset of html, there are some options like netsurf and dillo.

                    Personally, I’d avoid HTML entirely if I could.