Last Updated on August 11, 2021
Developing a web browser is a gargantuan task with the market dominated by a handful of web browsers. And if you want an open source graphical web browser your options are even more limited; the two popular choices are Firefox and Chromium.
Why are web browsers difficult to code? Let’s look at the components of a web browser. They typically offer a graphical user interface, an engine, and a controller. The engine is the most complicated element. Engines used by open source web browsers include WebKit, Blink, and Gecko (or the Goanna fork).
The graphical user interface is a large part of the user experience for many web browsers. Firefox sees a fair chunk of the screen estate devoted to its interface. However, advanced users prefer to declutter the interface, leaving almost all of the screen real-estate to the engine.
Step forward Nyxt. This open source web browser offers familiar key-bindings (Emacs, vi, CUA), it is fully configurable and extensible in Lisp, and sports powerful features. You may not have heard of Nyxt even though it’s attracted nearly 5K GitHub stars. Let’s put that right!
This web browser was originally called Next, but sensibly the project was recently renamed to Nyxt.
Installation
There’s two packages in the Arch User Repository, one provides version 1.5.0, the other offers the latest cutting-edge 2.0.0 Pre-release 2. The latter did not compile on our systems failing at the end when trying to stat the LICENSE file. A simple edit of the PKGBUILD fixed the minor issue (which may have been rectified when you read this article).
All our testing was with the 2.0.0 pre-release version 2. Obviously this is an experimental release.
If you’re not running an Arch-based distro, it’s likely you won’t find a convenient package in your distro. The developers provide a complete bundle of the program with all its dependencies. It’s a large download (306MB) though.
Next page: Page 2 – In Operation
Pages in this article:
Page 1 – Introduction / Installation
Page 2 – In Operation
Page 3 – Documentation
Page 4 – Summary