Fast, small, webkit based browser framework extensible by Lua.
Clone or download
Latest commit 51282cc Dec 2, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Change issue template subtitle Oct 22, 2018
build-utils correct escaping of HTML entities in documentation pages Jan 3, 2018
clib Adjust permissions of cookies.db Oct 21, 2018
common Make luaH_dump_stack() non-inline Feb 13, 2018
config Fix rc.lua breaking for non-LuaJIT builds (#691) Mar 27, 2018
doc Move window:send_key() to widget:send_key() Feb 4, 2018
extension Fix some widget property changes not being notified Mar 5, 2018
extras Add new luakit icon to repo (#363) Dec 30, 2017
lib Merge pull request #732 from c0dev0id/develop Oct 22, 2018
resources/icons Slightly improve default tab icons Jul 25, 2017
tests Improve mechanism of opening selection contents Jan 17, 2018
widgets Fix some widget property changes not being notified Mar 5, 2018
.gitattributes Add language globs to .gitattributes May 15, 2017
.gitignore Add tests.util clib, remove posix.mkdtemp use May 19, 2017
AUTHORS Fix AUTHORS grammar Mar 5, 2017 Update Dec 2, 2018 Fix typo in Sep 26, 2017
COPYING.GPLv3 Initial commit May 2, 2010
Makefile Avoid DESTDIR in buildopts.h definitions Nov 16, 2018 Update incorrect README information Nov 23, 2017 Move from /usr/share to /usr/lib (#520) Sep 24, 2017 Avoid DESTDIR in buildopts.h definitions Nov 16, 2018
globalconf.h Remove globalconf.L and extension.WL (#296) May 13, 2017
ipc.c Move from /usr/share to /usr/lib (#520) Sep 24, 2017
ipc.h Remove IPC socket files on restart (#400) Aug 26, 2017
log.c Check log serializer return value Aug 27, 2017
log.h Emit queued log signals after reexec (#467) Aug 26, 2017
luah.c Add UTF-8 compatibility library Oct 1, 2017
luah.h Move luah.h helpers to common/luah.h May 9, 2017 Fix incorrect documented viewsource command Sep 30, 2016
luakit.c Change default directories to be only accessible by the owner Oct 21, 2018
web_context.c Remove possible g_strjoinv() on null pointer Jul 19, 2017
web_context.h Remove support for WebKitGTK+ < 2.16 Jul 28, 2017


luakit is a fast, light and simple to use micro-browser framework extensible by Lua using the WebKit web content engine and the GTK+ toolkit.

Don't Panic!

You don't have to be a developer to use luakit on a daily basis. If you are familiar with vimperator, pentadactyl, jumanji, uzbl & etc you will find luakit behaves similarly out of the box.


  • GTK+ 3
  • Lua 5.1 or LuaJIT 2
  • lfs (lua file system)
  • webkit2gtk
  • sqlite3


To compile the stock luakit run:


To link against LuaJIT (if you have LuaJIT installed) run:


To build with a custom compiler run:

make CC=clang

Note to packagers: you may wish to build luakit with:


To prevent luakit searching in relative paths (./config & ./lib) for user configs.

The USE_LUAJIT=1, PREFIX=/path, DEVELOPMENT_PATHS=0, CC=clang build options do not conflict. You can use whichever you desire.


To install luakit run:

sudo make install

The luakit binary will be installed at:


And configs to:


And the luakit libraries to:


To change the install prefix you will need to re-compile luakit (after a make clean) with the following option:

make PREFIX=/usr
sudo make PREFIX=/usr install

Use Luakit

Just run:

luakit [URI..]

Or to see the full list of luakit launch options run:

luakit -h


The configuration options are endless, the entire browser is constructed by the config files present in /etc/xdg/luakit

There are several files of interest:

  • rc.lua -- is the main config file which dictates which and in what order different parts of the browser are loaded.
  • theme.lua -- change fonts and colours used by the interface widgets.

Just copy the files you wish to change (and the rc.lua) into $XDG_CONFIG_HOME/luakit (defaults to ~/.config/luakit/) and luakit will use those files when you next launch it.

The following files used to be configuration files, but are not anymore:

  • binds.lua -- is now a built-in module providing the default bindings. Bindings should be changed with the modes APIs.
  • modes.lua -- is now a built-in module providing built-in modes, as well as providing APIs to manage bindings within those modes.
  • window.lua -- is now a built-in module.
  • webview.lua -- is now a built-in module.
  • webview_wm.lua -- is now a built-in module.
  • globals.lua -- global settings have been moved to other modules.

These files will be silently ignored on startup so as to prevent errors; users wishing to override the built-in modules should change package.path.

HiDPI Monitor Configuration

If you have a HiDPI monitor (> 1920x1080) and find that web pages are too small, you can change the webview.zoom_level on the settings page (luakit://settings/) to 150 or 200 as per your taste.


To delete luakit from your system run:

sudo make uninstall

If you installed with a custom prefix remember to add the identical prefix here also, example:

sudo make PREFIX=/usr uninstall

Reporting Bugs

Please use the bug tracker at:


Join us in #luakit on the network.