Skip to content
Fast, small, webkit based browser framework extensible by Lua.
Lua C Roff Makefile CSS Vim script Other
Branch: develop
Clone or download
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 Remove trailing whitespace May 12, 2019
common command :save, to save the complete page as a single mhtml file May 8, 2019
config allow hint CSS to be customized through the theme Apr 13, 2019
doc Remove references to domain_props (#787) May 16, 2019
extension Fix some widget property changes not being notified Mar 5, 2018
extras Add new luakit icon to repo (#363) Dec 30, 2017
resources/icons Slightly improve default tab icons Jul 25, 2017
tests Add Travis CI May 26, 2019
widgets Revert "Show WebView widgets only when switching to them (#798)" Aug 14, 2019
.gitattributes Add language globs to .gitattributes May 15, 2017
.gitignore Add tests.util clib, remove posix.mkdtemp use May 19, 2017
.travis.yml Add Travis CI May 26, 2019
AUTHORS Fix AUTHORS grammar Mar 5, 2017 Update changelog May 12, 2019 Fix typo in Sep 26, 2017
COPYING.GPLv3 Initial commit May 2, 2010
Makefile Avoid DESTDIR in buildopts.h definitions Nov 16, 2018 Add clearer description about DEVELOPMENT_PATHS Apr 8, 2019 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 command :save, to save the complete page as a single mhtml file May 8, 2019
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

To build with local paths (interesting for package maintainer and contributers). You may wish to build luakit with:


This lets you start luakit from the build directory, using the config and libraries within the same.

The USE_LUAJIT=1, PREFIX=/path, DEVELOPMENT_PATHS=1, 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.

You can’t perform that action at this time.