Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fast, small, webkit based browser framework extensible by Lua.
Lua C C++ Other
Failed to load latest commit information.
build-utils Removed individual glib header includes (no longer supported)
clib Fixed compiler warning regarding ncol.
common documented the rest of common/luaclass.c
config Move Control+Enter binding into the add_cmds block.
extras Add script to migrate bookmarks from old database schema
lib Fix mason-larobina/luakit#135
luadoc Merge branch 'develop' into rel-paths
tests Comment out soup.ssl_ca_file test (highly system dependant)
widgets Fix "navigation-request" blocking, off-by-one error in C code
.gitattributes Possible fix for issue #16, fix .gitattributes entry for
.gitignore .gitignore luakit.1.gz
AUTHORS Remove inaccuracies from AUTHORS & COPYING files, correct wording.
COPYING Remove inaccuracies from AUTHORS & COPYING files, correct wording.
COPYING.GPLv3 Initial commit
Makefile Fix typo, luakit icon should be 0644
PATCHES Initial commit fixed link to bugtracker in Spruce up, several more platform specific build options Readable color debug messages with relative timestamp & signal origin
luah.c luakit.absolutize() -> os.abspath()
luah.h luaH_rawfield returns lua type instead of 1 Manpage: removed non-default binding.
luakit.c Remove deprecated `g_thread_init` usage
luakit.doxygen Add \lcode doxygen alias


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

Dont 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.


  • gtk2
  • Lua (5.1)
  • lfs (lua file system)
  • libwebkit (webkit-gtk)
  • libunique
  • sqlite3


To compile the stock luakit run:


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


To build without libunique (which uses dbus) 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, USE_UNIQUE=0, 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.
  • binds.lua -- defines every action the browser takes when you press a button or combination of buttons (even mouse buttons, direction key, etc) and the browser commands (I.e. :quit, :restart, :open, :lua <code>, etc).
  • theme.lua -- change fonts and colours used by the interface widgets.
  • window.lua -- is responsible for building the luakit browser window and defining several helper methods (I.e. w:new_tab(uri), w:close_tab(), w:close_win(), etc).
  • webview.lua -- is a wrapper around the webview widget object and is responsible for watching webview signals (I.e. "key-press", "load-status", "resource-request-starting", etc). This file also provides several window methods which operate on the current webview tab (I.e. w:reload(), w:eval_js("code here.."), w:back(), w:forward()).
  • modes.lua -- manages the modal aspect of the browser and the actions that occur when switching modes.
  • globals.lua -- change global options like scroll/zoom step, default window size, useragent, search engines, etc.

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.


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:


Mailing list

Subscribe to the development mailing list here:

Or view the archives at:


Join us in #luakit on the network.

Something went wrong with that request. Please try again.