Luakit Extensible Micro Browser

Fellow control freaks, if you enjoy having dominion over just about every aspect of a program, I think you'll like this. Inspired by projects such as uzbl, and developed by fellow Perth-boy Mason Larobina, luakit is the Web browser for those who like the element of control. According to the Web site:

luakit is a highly configurable, micro-browser framework based on the WebKit Web content engine and the GTK+ toolkit. It is very fast, extensible by Lua and licensed under the GNU GPLv3 license.

It is primarily targeted at power users, developers and any people with too much time on their hands who want to have fine-grained control over their Web browser's behavior and interface.

It's hard to notice the discreet tabs, with black for active and gray for inactive, but they're very cool.

This lightweight browser seems to run YouTube with Flash just as well as Firefox and Chrome.

Project code that's both documented and diagrammed—now I've seen everything!


Pre-made packages/binaries are available on the Web site for Gentoo, Arch Linux, Debian/Ubuntu and Fedora, along with the source code.

As for library requirements, the documentation says you need the following:

  • gtk2.

  • Lua (5.1).

  • lfs (lua filesystem).

  • libwebkit (webkit-gtk).

  • libunique.

  • sqlite3.

  • help2man.

On my Kubuntu system, the lfs package was called liblua5.1-filesystem0. If you're using the source and running into dependency errors, it's worth trying out the above libraries' development packages (usually named -dev) and doing the luakit installation again.

If you're running with the source, grab the latest tarball from the Web site, extract it, and open a terminal in the new folder. Enter the command:

$ make

I'm not sure what resources Mason has used here, but this make script is kind of like a cross between ./configure and make, combining the two—interesting. If you run into any errors here, chances are that you're missing a library dependency somewhere; pay close attention to the output.

Finally, to install luakit, if your distro uses sudo, enter:

$ sudo make install

If your distro uses root, enter:

$ su
# make install


The actual interface is rather unique. Like the lovechild of Chrome and Vim, the interface is part sleek and modern-minimalist, part old-school hacker. Entering a URL or even clicking Back may leave the uninitiated a little shocked, as the GUI elements one takes for granted are seemingly nonexistent. However, the two main UI elements unlock them immediately: right-clicking and the input bar.

Starting with the input bar, you can enter URLs with o, t or w to open URLs in the same tab, a new tab or a new window, respectively. Right-clicking provides controls like Back, Forward, Stop and so on.

On the subject of tabs, not only was I impressed by their presence in this lightweight browser, but they're also by far the coolest tabs I ever have seen. They nearly blend into the background (perhaps part of their mystique), and at first I didn't even notice their presence. Open some new tabs with t, and the tabs at the top of the browser start dividing evenly, with the active tab a strong black, and the inactive tabs techy-gray.

Much to my surprise (given luakit's minimalist nature) Flash appeared to work without any worries, with YouTube as my first test. Indeed, many pages I thought wouldn't stand a chance, loaded in a way that was both accurate and stable.

Nevertheless, the actual browsing aspect is only half the equation when considering luakit, whose real appeal lies in its endless customizability. The entire browser is constructed by a series of config files, which do all kinds of things, like change what parts of the browser are loaded and in which order, define button combinations and so on.

Regarding this, Mason gave a great response to one of my leading questions that was long and detailed, and it will appeal to anyone who knows what they're doing. Check the Web site if you want to see it.

For the modder who is about jump into coding, luakit's Web site has something I've never actually come across. Unlike 99% of us who just start coding randomly, the Web site has a whole Data Structure Index, explaining each file with flowcharts and documented references—the way we were taught but always avoided!

If any programmers are looking to help out with luakit, Mason recommends porting a Firefox or Chrome plugin that you can't live without. A simple method for ad-blocking also would be greatly appreciated.

At the end of the day, this is one of those projects that will inspire great loyalty among its fans with its own unique style. And if any film-makers working on a hacker movie are reading this and looking for a browser that looks Neo-from-The-Matrix cool, this is the one.

luakit Keyboard Commands

These are the most important bindings for basic usage (see the documentation for more):

  • i — insert mode.

  • : — command mode.

  • Ctrl-z — passthrough mode.

  • o — open URL.

  • t — open URL in new tab.

  • w — open URL in new window.

  • d/Ctrl-w — close tab.

  • D/ZQ — close window.

  • ZZ — save session and close window.

Read more:

Load Disqus comments