Website review
This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.
What is Luakit?
Luakit is a lightweight, keyboard-driven web browser framework built on the WebKit content engine and the GTK+ toolkit. It is licensed under GPLv3 and configured and extended with Lua, which is what makes it unusual: instead of a fixed settings menu, you edit Lua files to change keybindings, interface layout, and behavior. Its stated audience is power users, developers, and anyone who wants fine-grained control over how their browser works.
The project describes itself as fast and highly configurable. It ships a small codebase (around 9,000 lines, per the site), so building from source is quick. Features visible on the homepage include a normal browsing mode, a "follow mode" that overlays link hints for keyboard navigation, an ad blocker with configurable filter lists, themes, and vertical tabs.
Who it suits
- Keyboard-centric users who dislike reaching for a mouse
- Developers comfortable editing Lua configuration files
- People on Linux, BSD, Solaris, or HURD who want a minimal browser they can reshape
- Users who want to inspect and control ad-blocking filter lists directly
Who should look elsewhere
- Anyone who expects a conventional graphical settings dialog
- Windows and macOS users: Windows is only supported through WSL and is not actively maintained, and macOS is not listed at all
- Users who want a browser that updates itself independently of the operating system
Practical trade-off: security depends on your distribution
Luakit relies on WebKitGTK+ for rendering, so its security posture is tied to whichever version your package manager provides. The project's own notice warns that some distributions ship outdated, vulnerable builds. As of the site's September 2019 note, Arch, Debian, Fedora, Gentoo, and Ubuntu packaged current versions, while OpenSUSE's stable channel did not. If you try Luakit, check your installed WebKitGTK+ version first — that single check matters more than any feature comparison.
Getting started
On Arch, install the luakit community package or luakit-git from the AUR; FreeBSD and OpenBSD have packages. Elsewhere you build from source with GTK 3, WebKitGTK+, Lua 5.1 or LuaJIT, Lua File System, and SQLite 3. OpenBSD users should compile with clang rather than GCC.
To judge whether it fits you, spend an evening editing the Lua config: if remapping keys and rewriting the interface feels natural, Luakit is a good match. If it feels like unnecessary work, a mainstream browser with a keyboard-extension will serve you better. The project lives at Luakit Web Browser, where releases, documentation, and screenshots are available.
How does Luakit compare to other lightweight browsers for power users?
Luakit is best understood as a browser framework, not a finished lightweight browser. It pairs the WebKit engine with GTK and exposes its behaviour through Lua, so power users can rewrite keybindings, modes, and interface elements rather than just toggling settings. That puts it in a different category from most "lightweight browser" alternatives, which tend to offer fewer options but work out of the box.
Where it fits among lightweight options
- Luakit — aimed at power users, developers, and anyone wanting fine-grained control over browser behaviour and interface. Extensible in Lua; around 9,000 lines of code, so building from source is usually quick. Linux, BSD, and Solaris are supported; Windows works only through WSL, and Windows, Solaris, and HURD are described as not actively supported but known to work.
- Terminal or keyboard-centric browsers such as qutebrowser suit people who want modal, keyboard-driven browsing with a Python configuration layer, but they are a different tool rather than a drop-in substitute.
- Small graphical browsers such as Midori target users who want something lighter than Firefox or Chrome without writing configuration code.
- Mainstream browsers with a minimal mode, such as Firefox, remain the safer default if you value automatic updates, extension ecosystems, and predictable rendering over deep customisation.
The trade-off that matters most
The page's own WebKit security notice is the deciding factor. Because Luakit depends on the WebKitGTK+ version your distribution packages, your security posture is tied to your distro's update channel. The page notes that as of September 2019, Arch, Debian, Fedora, Gentoo, and Ubuntu shipped the latest WebKitGTK+, while OpenSUSE shipped an outdated and vulnerable version in its stable channel. That is a distribution-level issue, not something Luakit can fix for you.
Practical guidance
If you run Arch, Debian, Fedora, Gentoo, or Ubuntu and enjoy scripting your browser, Luakit is a strong fit: install the community package or build from source, then check that your WebKitGTK+ is current. If you are on OpenSUSE, or you want a browser that stays secure without you monitoring engine versions, choose a mainstream browser instead. On Windows, expect to work through WSL and a source build.
A useful first test: install it, open the ad blocker settings page shown in the screenshots, and try editing a keybinding in Lua. If that feels like a feature rather than a chore, Luakit is for you; if it feels like maintenance, a conventional lightweight browser will serve you better.
How do I configure Luakit using Lua to customize its behavior and interface?
Luakit's configuration is Lua code, not a settings dialog. You edit a user config file that the browser loads at startup, and the same language that extends the browser also defines its keybindings, interface and behavior. That is why the project describes itself as a framework for fine-grained control rather than a browser with a preferences panel.
The typical workflow is:
- Start from the default configuration that ships with Luakit, so you keep working defaults.
- Copy it into your own config directory and edit that copy, leaving the packaged version untouched.
- Change one thing at a time and restart or reload Luakit to see the effect.
- Keep your config under version control once it grows, since a broken file can make the browser hard to use.
H3 What you can change
Because configuration is code, the practical categories are broad:
- Keybindings and modes. Luakit uses modal input, and the screenshots on the project page show normal mode and a follow mode with link hints. You bind keys per mode, so you can add your own shortcuts or change existing ones.
- Interface. The project shows themes and vertical tabs in its screenshots, both of which are configuration choices rather than fixed features.
- Behavior. Settings such as ad blocking are exposed as configurable pages and Lua settings; the screenshots show an ad blocker settings page listing active filter lists.
- Extensions. New commands, status bar indicators and small features are written in Lua, which is the "extensible with Lua" part of the description.
H3 A concrete scenario
Suppose you read long articles and want fewer distractions. You could bind a key in normal mode to toggle a minimal interface, add a command that opens the current page in a reader-style view, and set your ad blocker filter lists once in your config so they persist across sessions. None of that requires patching the browser; it is Lua you keep in your own file.
H3 Trade-offs to expect
| Approach | Strength | Cost |
|---|---|---|
| Edit Lua config | Full control over keys, UI and behavior | You must learn the API and Lua basics |
| Use defaults as-is | Works immediately | Little customization beyond built-ins |
| Write extensions | Add genuinely new functionality | More code to maintain and debug |
The main risk is not difficulty but drift: after an upgrade, a config written against an older API may need small fixes. Keeping your config small and commented makes that cheap.
H3 Where to look next
The project's own documentation is the authoritative reference for available settings and functions, and the source repository is the place to check current behavior. Luakit is distributed under the GNU GPLv3 and targets power users, developers and anyone wanting precise control, so expect to read documentation rather than click through menus. For a starting point, see Luakit Web Browser. If you prefer a browser configured through a graphical preferences window, Luakit is the wrong trade-off; if you want your keybindings and interface expressed as code, it is the right one.
How can I install Luakit on Linux or BSD?
Install Luakit on Linux or BSD either from your system's package manager (fastest, if a package exists) or by building from source (works everywhere, but you must supply the dependencies).
Package-manager installs
- Arch Linux: install the
luakitcommunity package, orluakit-gitfrom the AUR if you want to track development. - FreeBSD and OpenBSD: install the
luakitpackage. - Other Linux distributions: build from source. The project notes that a Debian package was in the works, so check your distribution's repositories first before compiling.
Building from source
Install these dependencies first, then download and build:
- GTK 3
- WebKitGTK+ (
webkit2gtk) - Lua 5.1 or LuaJIT
lfs(Lua File System)- SQLite 3
Luakit is small — roughly 9,000 lines of code — so compilation is usually quick. On OpenBSD, build with clang rather than GCC; the GCC shipped there is outdated and will produce compilation errors.
One thing to check before you commit
Luakit depends on WebKitGTK+, and your distribution's version matters for security. The project's own notice states that as of September 2019, Arch, Debian, Fedora, Gentoo and Ubuntu packaged the latest WebKitGTK+, while OpenSUSE shipped an outdated, vulnerable version in its stable channel. Verify your distribution's WebKitGTK+ version before relying on Luakit for everyday browsing; if it lags, consider a distribution that keeps it current.
A practical next step
If you are on Arch, FreeBSD or OpenBSD, try the package first — it handles dependencies and updates for you. If you are elsewhere, or you want a specific Luakit version, install the five dependencies above and build from source. For reference material and support channels, see Luakit Web Browser.
How do I use Luakit's follow mode for keyboard-driven link navigation?
Follow mode turns Luakit's page into a numbered set of keyboard targets: you press the follow key, every visible link gets a short hint, you type the hint, and the browser follows that link without touching the mouse.
How it works in practice
- Trigger follow mode from normal mode (the default binding is
f, withFfor opening a link in a new tab in most configurations). - Luakit overlays hint labels on links and other clickable elements. The page shows this state in its screenshots: "Luakit in follow mode with several link hints visible."
- You type the label shown next to the link you want. Typing narrows the match, so you rarely type the whole label.
- The link opens according to the command you used — same tab, new tab, or another action you have bound.
Because hints are generated from what is currently visible, follow mode is most reliable on pages where all targets are on screen. On long pages, scroll first, then trigger follow mode.
Making it fit your habits
Luakit is described as a browser framework built on WebKit and GTK+, extensible with Lua and aimed at "power users, developers and anyone who wants to have fine-grained control over their web browser's behaviour and interface." Follow mode sits squarely in that design: the keybindings, hint characters and what happens after a hint is matched are configuration, not fixed behaviour. If the default hint alphabet or trigger key clashes with your muscle memory, change it in your Lua configuration rather than adapting to it.
A practical starting workflow:
- Keep one hand on the home row and treat follow mode as your primary way to open links.
- Bind a separate key for "open in new tab" so you can queue up several links without leaving the page.
- Use the same hint style consistently, so you stop reading labels and start typing them by reflex.
Trade-offs
Follow mode is fast and precise once learned, but it has real costs. Hint labels compete visually with page content, and on link-dense pages the labels can overlap or become ambiguous. It also assumes a keyboard-centric setup; if you switch between Luakit and a mouse-driven browser, the reflex takes time to rebuild. For occasional browsing, ordinary clicking may simply be less effort.
Next step
Read the documentation and default keybinding list that ship with the project, then copy the follow-mode bindings into your own configuration and adjust the trigger keys. The project publishes releases, documentation and support links from its home page at Luakit Web Browser, which is the authoritative place to check current defaults rather than relying on remembered bindings.
How do I enable and configure Luakit's ad blocker?
Luakit's ad blocker is configured in Lua rather than through a graphical settings menu, which fits its design as a browser framework for people who want direct control. The page shows a settings view that lists currently active filter lists, so the blocker is part of the normal configuration surface rather than a hidden extension.
Where to start
Open Luakit's ad blocker settings page (reachable from the browser's own settings interface) to see which filter lists are active. From there you manage lists and rules; for deeper changes you edit Luakit's Lua configuration files, since the browser is extensible in Lua and ships as a framework rather than a fixed product.
What to expect
- Filter lists are the main control: enabling or disabling a list changes what gets blocked.
- The page evidence confirms an ad blocker settings page exists and shows active filter lists, but it does not document specific Lua keys or file paths, so consult Luakit's documentation and help pages for exact option names before editing.
- Because configuration is code, you can tune behaviour beyond simple on/off, but you also take responsibility for keeping it correct.
Practical scenario
If you want a quieter reading experience without touching code, start with the settings page and toggle the lists you need. If you want per-site exceptions or custom rules, plan to work in the Lua config and keep a backup so you can revert a broken change.
A trade-off to weigh
Luakit's approach rewards power users and developers who want fine-grained control over browsing behaviour. It is less convenient if you expect a click-through blocker with no configuration. Also note the page's security warning: your distribution's WebKitGTK+ version matters, and outdated packages can carry known vulnerabilities—so keep the underlying engine current regardless of how you configure blocking. See Luakit Web Browser for releases, downloads and documentation links.
User reviews (0)