Main menu:


Please consider a small donation:



Or you can donate bitcoin:


Thanks to TekLinks in Birmingham, AL, for providing colocation and bandwidth.

Page Rank


FOSS Force Best Blog--2013 Award

Recent posts

Recent comments

About this blog

I am Eric Hameleers, and this is where I think out loud.
More about me.


Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 422 other subscribers

My Favourites



March 2019
« Feb    

RSS Alien's Slackware packages

RSS Alien's unofficial KDE Slackware packages

RSS Alien's multilib packages

RSS Slackware64-current



Netsurf, a lightweight browser, works on the framebuffer too

Someone asked me to build a package for Netsurf. I had never heard of Netsurf before. It turns out that Netsurf is a cross-platform web browser which also runs on Linux. Its rendering engine is written from scratch, therefore the browser does not share code with any of the big browsers. Netsurf is actively developed and has a healthy community. A new version was released last week – 3.7.
Functionally speaking, this browser is not as versatile or capable as other modern browsers, but its advantage is that it is small, fast, suited for low-end hardware, and more importantly: it works on the Linux framebuffer. This means that you can have a basic graphical web browser on your server console. It looks better than “links -g”.
Note: even though Netsurf comes with both a GTK version (netsurf-gtk) and a framebuffer version (netsurf-fb), even the framebuffer binary make heavy use of X.Org and freetype libraries. So if you want to use the framebuffer browser on a server console, you need to install the X series anyway.

How to make Netsurf work on the Linux framebuffer, i.e. on the console?

  • Add your user to the “input” group so you can use the mouse (i.e. the /dev/input/mice device node) using the command (as root):
    # gpasswd -a your_username input
    If you are currently logged on, you need to logout and login again to make this change effective.
  • Determine the width and height of your framebuffer console to make maximal use of your screen dimensions (netsurf on a framebuffer defaults to a window of 800×600 pixels) by querying the /sys virtual filesystem and look for the characteristics of the fb0 framebuffer device:
    # cat /sys/class/graphics/fb0/virtual_size
    This will return width and height in pixels, comma-separated. In my case I get “1920,1080”.
  • Read the available documentation to learn about the limitations.

With the above taken care of, start the Netsurf framebuffer browser with:
$ netsurf-fb -w <width> -h <height>
… where <width> and <height> are the values obtained from the command further up.

Curious? Get the package from my regular repository ( or any of its mirrors.

If you want to compile netsurf yourself, you’ll also need two dependencies, “perl-html-tagset” and “perl-html-parser“.


Comment from xa0c
Posted: October 25, 2017 at 23:21

Awesome! Never heard about it as well and this is exactly what I need!
Big thanks to devs and Eric!

Comment from The Flash
Posted: October 26, 2017 at 04:59

How many programs actually would work with the framebuffer?

Pingback from Links 25/10/2017: New Linux Report, Qt 5.10 Beta 2, CAINE 9.0 | Techrights
Posted: October 26, 2017 at 06:12

[…] Netsurf, a lightweight browser, works on the framebuffer too […]

Comment from jim jowski
Posted: October 30, 2017 at 03:15

When I tried to run netsurf-fb is complained about not finding and slackware-current is only at 0.9.11. 🙁


Comment from alienbob
Posted: October 30, 2017 at 09:42

jim, the library is part of the libvncserver-0.9.11 package in Slackware-current.
Note that the netsurf package that I built for Slackware 14.2 depends on… are you perhaps running Slackware 14.2 instead of -current and installed the wrong package?

Comment from jim jowski
Posted: October 30, 2017 at 18:39

Yes, it was a 14.2 system. I looked closer and fixed the problem. I’ll look at netsurf a bit more later when I have a few extra minutes.


Comment from Cristiano Urban
Posted: November 3, 2017 at 17:44

Hi Eric,
thank you for providing the package.

I noticed that shows a blank page in both gtk and fb interfaces. Instead, if you add “html” at the end of the url it seems to load it correctly.

Comment from alienbob
Posted: November 3, 2017 at 18:18

Christiano, interesting find! Indeed the site works with “/html/” appended.
Netsurf has more of these quirks/incompatibilities, it is still nice to use because it is so fast.

Comment from Cristiano Urban
Posted: November 3, 2017 at 20:41

Yes, I agree!

Comment from Drakeo
Posted: November 10, 2017 at 08:16

seems fast and stream. Long way togo. does not read the schema for youtube sighn in

Comment from jwp
Posted: November 15, 2017 at 21:22

Hi I am using ssh to get the server from a chrome book. I am running an orange pi one with armbian 16.04 followed your instructions and it did this Unable to init SDL: Unable to open a console terminal

Comment from alienbob
Posted: November 15, 2017 at 22:38

jwp, I do not publish a netsurf package for armbian. This is a Slackware blog.
And you will not get the framebuffer program working through an ssh session, you need to be logged on to the actual machine console.

Write a comment