Luakit is a highly configurable, browser framework based on the WebKit web content engine and the GTK+ toolkit. It is very fast, extensible with 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 behaviour and
Luakit in normal mode when reading a web page.
Luakit in follow mode with several link hints visible.
Luakit showing the ad blocker settings page, listing currently active filter lists.
Luakit with a different theme and with vertical tabs enabled.
Updated to use the WebKit 2 API. This is a critical change, since the older WebKit 1 API that the original Luakit is based on has over two hundred security vulnerabilities that will never be fixed (See here for more details).
Updated and optimized ad blocker included.
Added several new widget types, including overlay and drawing area widgets.
Improved API and usage documentation.
Improved test coverage.
Improved test runner that supports running simulated browsing scenarios.
Added support for detaching tabs into new windows. No support yet for reattaching them.
Added support for vertical tabs.
Key presses that do not prefix any valid bindings are now ignored. This prevents key bindings like gg being ignored because the input buffer has filled up with garbage.
Inputs can now be focused in follow mode by typing their placeholder text.
Adding a form to the form-filler file now uses visual element selection, similar to follow mode.
Added a status bar widget indicating NoScript status on the current page.
Improved exit-prevention when restarting, quitting via key binding, and quitting via the window manager.
Added recovery session auto-saving. If Luakit crashes, a recent snapshot of your session can be restored.
Miscellaneous Changes and Bug Fixes
Removed usage of module() in Lua code.
Saving and restoring a session now restores the set of closed tabs, allowing you to ‘undo-close’ them.
Reopened tabs that were closed in a previous session are now restored in the correct place.
:wqall now saves and closes all windows, not just the current one.
Idle callback functions that have errors are removed; this prevents error message spam.
Fixed Lua errors when closing windows with multiple tabs.
Fixed various bugs in various Luakit chrome pages.
Completion now works with commands that contain hyphens.
Currently development is still ongoing, and although many parts of
Luakit are now relatively stable, some parts are in a state of flux.
This is complicated by the separation of Luakit’s Lua code into the
config/ and lib/ directories; while
development changes can be made to Lua modules within lib/,
occasionally it is necessary to modify Lua code within
config/. This risks breaking users’ configuration, as it is
expected for users to copy files from config/ to their home
directory and modify them as they see fit.
I am considering ways to mitigate this problem for a variety of common
use-cases. Currently, however, it is necessary for users to check for
changes to files in config/ whenever they update, and
manually merge any changes into any modified files.
Downloading, Installing, & Running
Important security notice: While switching to the
WebKit 2 API means a vastly improved security situation, not all distributions of Linux package the
most up-to-date version of WebKitGTK+, and several package very outdated versions that
have many known vulnerabilities. As of February 2017, Arch, Fedora,
and Ubuntu all have the latest version of WebKitGTK+; but Debian,
Gentoo, and OpenSUSE ship outdated and vulnerable versions in their
stable channel. See here for more details.
If you use Luakit for browsing, it is your responsibility to ensure that
your distribution packages an up-to-date version of WebKitGTK+!
Supported Operating Systems
At this point in time, only Linux and similar Unix-like operating systems are supported. I’ve only tested Luakit on Linux.
Arch Linux users can install the luakit-git package from the AUR. Other users will need to download and build from source. Luakit contains only around 9000 lines of code, so this process is usually very fast.
Downloading The Source
You can download the latest development version in either
You can also clone the project with Git
git clone git://github.com/aidanholm/luakit
After downloading, full instructions on building and running Luakit are available in the README.md file.
Contributing to Luakit
Please report any bugs or issues you find at the GitHub issue tracker.
If you have any feature requests or questions, feel free to open an
issue for those as well. Pull requests and patches are both welcome,
and there are plenty of areas that could be improved, especially tests