- Required WebKitGTK+ version: 2.14+
- A relatively recent version of GTK+ 3 is required; some features are not available on older versions.
The adblock module previously available at https://github.com/luakit/luakit-plugins
has been included into the main luakit repository, with the following changes:
- Ported adblock module to use WebKit 2 compatible APIs. This breaks compatibility with WebKit 1.
- Added color-coding to adblock filter list status indicator.
- The Adblock chrome page CSS has been updated to be more consistent with other luakit chrome pages.
- An enable/disable button has been added to the Adblock chrome page.
- The adblock chrome page has received several other refactors and improvements.
- Adblock no longer blocks ads on local files (pages on the
- Adblock no longer blocks data URIs for performance reasons.
- Added links for quickly enabling/disabling filter lists to adblock chrome page.
adblock.enabled writeable, and removed
- Adblock now blocks pages from being loaded until all filter list rules are fully loaded.
- Adblock now enables newly-added filter lists by default.
- Fixed a bug where luakit would not start if the adblock subscriptions file was missing.
- Fixed broken
- Improved the consistency and formatting of adblock log messages.
- Fixed a bug where the adblock subscriptions file would become corrupted.
- Adblock simple mode has been removed.
- Fixed parsing of adblock filter list rules containing '#'.
- Fixed a bug where adblock would incorrectly block URIs on many domains, due to an design flaw.
- Adblock now displays an error page when the adblock module blocks a page navigation.
- Improved filter list rule length and ignore count calculation.
- Added several optimizations for rule matching that significantly improve performance.
A new module,
error_page.lua, allows customization of luakit error
pages, such as those displayed when a page fails to load.
- Luakit error pages are now displayed with a nicer interface, provided by
- Chrome page errors are now displayed with the
error_page.lua module interface.
- Error pages now show information about the current proxy, as unintended proxy use can be responsible for page load failures.
- Error pages can now be customized with user CSS.
A new module,
styles.lua, supports user stylesheets with
@-moz-document sections. User stylesheets from https://userstyles.org are
- Luakit now automatically detects and parses user stylesheets on startup.
- Added support for enabling/disabling user stylesheets immediately, without refreshing the page.
- Added the
:styles-list command to display the user stylesheets menu.
- Added the
:styles-reload command to reload all user stylesheet files from disk.
- Removed the site-specific
Other new modules
open_editor.lua: Adds support for editing text areas and input fields in an external text editor.
newtab_chrome.lua: Adds support for customizing the new/blank tab page (
luakit://newtab/) with HTML and CSS.
image_css.lua: Improves how images are displayed by WebKit.
vertical_tabs.lua: Displays tabs in a vertical tab bar to the left of the tab content.
referer_control_wm.lua: Adds support for blocking the
Referer header on cross-origin requests.
viewpdf.lua: Adds support for automatically viewing downloaded PDF files.
luakit.process_limit to control the maximum number of web processes.
- Added luakit spell checking API. A suitable language to check spelling with is automatically detected.
- Added website data retrieval and removal APIs.
- Added user stylesheet APIs, used by
styles.lua. Stylesheet objects can be created from Lua code and enabled/disabled for individual
- Added request API. This supports handling custom URI scheme requests asynchronously.
msg logging library. This replaces the
- Added more log levels. Luakit now has
debug log levels.
lousy.pickle library for Lua table serializing.
- Added missing
remove_signals method to Lua objects.
soup.cookies_storage to control the path to the cookies SQLite database.
- Added IPC endpoint and web module APIs.
- Added API for intercepting and modifying outgoing requests.
New widget APIs:
- Added unique IDs to
- Added widget
- Added widget
"mouse-leave" signals to
window.ancestor() method to retrieve the
window widget that a given widget is contained in.
- Added support for getting/setting
scrolled widget scroll position and scrollbar settings.
- Added support for displaying tooltips over widgets.
- Added support for customizing individual widgets with GTK 3's CSS support.
nrows() getter to
lousy.widget.menu widget instances.
New webview APIs:
webview widget properties
webview.modify_load_block() API. This allows Lua code to suspend page load operations.
- Added APIs to get the web process ID of
webview widgets and the current web extension ID.
- Added APIs to save/restore the internal state of a
"enable-userscripts" signal APIs to customize module behavior for individual
- Added signal for tab save decisions.
globals.page_step to control the size of the scrolling step.
- Added the
:tabdetach command to detach a tab into a separate window. The tab is not destroyed and recreated, so any ongoing work in the tab will not be lost.
- Added build options to specify more system paths, easing installation and packaging for a variety of systems.
- The build system now uses the correct Lua/LuaJIT binary for build scripts.
- A testing framework has been added that supports asynchronous tests.
- Automatically generated documentation is now included in luakit installations.
- Mode and bind information is now included in generated documentation.
- The documentation index now displays which modules are loaded.
- Added support for private browsing on a per-tab basis.
- Added support for defining search engines as Lua functions. This allows more complex input, such as specifying multiple fields in technical search engines.
- Added support for getting/setting the text alignment of
- Added support for getting/setting the divider position of
- Added support for getting/setting the background color of
- Added support for getting the width and height of widgets.
- Added support for setting the minimum width and height of widgets.
- Added basic profile support.
- Added options to control externally editing text files.
- Added a crash recovery session that is automatically saved regularly.
- Improved the formatting of error tracebacks. Improved tracebacks are now used for
debug.traceback() as well as error messages.
xdg module now has new properties
xdg module now ensures that the paths it returns do not end in a trailing slash, regardless of how the relevant environment variables are set.
- User scripts now show an error message on failure.
- The status bar and the tab bar are now hidden when luakit is fullscreen.
- GLib logs are now funneled through luakit's log system.
- Subsequent lines in log messages with multiple lines are now indented.
- When the input bar is shown, the status bar is hidden. This is to prevent webview resizes causing performance issues for some users.
- Error messages within the luakit window can now be selected with the mouse and copied.
- An error message is now shown when the formfiller module fails to fill a form.
- The undoclose menu is now automatically closed when there are no more menu entries.
- Closed tabs are now saved in the luakit session file, so undoclose now works across sessions.
- Individual tab history is now saved in the luakit session file.
"navigation-request" signal now includes the reason for the navigation.
- Plugin errors, load cancel errors, and frame load errors are now ignored.
- Search behavior across multiple tabs has been improved.
- Idle callback functions that throw errors are now removed.
- Follow mode now has a new label maker:
w:run_cmd() no longer adds the given command to the mode command history.
- A compile-time check for older WebKit versions has been added.
- All uses of
module() in Lua code have been removed.
- Most variables have been made non-global.
- A follow mode heuristic has been added for links that contain a single image element.
- Luakit no longer uses a custom luakit-specific useragent string. This mproves site compatibility with sites such as Google Maps and decreases user fingerprint.
- All binds now have accompanying descriptions.
- Chrome pages now have consistent CSS and page style.
introspector.lua has been renamed to
introspector_chrome.lua for consistency with other chrome page modules.
- Added a help chrome page.
- Luakit now gives a full backtrace on startup failure.
- Formfiller mode now uses visual selection to add forms to the formfiller file.
- Widget getters and setters now verify that the widget is still valid.
- The widget
"created" signal now has the new widget as an argument, making it much more useful.
- Accessing unknown widget properties now prints a warning.
- A developer warning is now printed if the web extension binary is not found.
- Luakit is now completely restarted if loading a configuration file fails.
- Luakit no longer shows follow hints for invisible elements.
:lua command now has an implicit variable
w, the current window table. This is for convenience.
:lua command can now evaluate expressions as well as execute statements.
resources/ directory tree has been added.
- Tabs now have a themable hover color.
- The default set of key bindings now includes bindings for number pad keys.
- A small margin has been added to the status bar.
- The formfiller now supports automatically filling forms when pages have finished loading. This is useful for automatically logging in to certain sites.
export_funcs parameter to
- Key presses that do not prefix any valid bindings are now ignored. This prevents key bindings being ignored because the input buffer has filled up with garbage.
- Follow mode now allows focusing inputs by their value (the text within them) and focusing empty inputs by their placeholder text.
luakit:// URIs are no longer added to history.
- Download objects now have the
- Performance of the
ssl widget has been improved.
- The downloads chrome page now displays file size statistics.
- Trailing newlines are now stripped from log messages.
webview widget scrolling interface has been modified for compatibility with WebKit 2.
- The API for retrieving page source is now asynchronous.
- Follow mode now strips the leading
mailto: from email links, and allows the user to configure whether to ignore case in or not.
- Changed the
width property to
socket widget is no longer destroyed upon plug disconnect.
go_next_prev.lua now uses an improved heuristic for guessing page relationship.
- Other minor changes.
- All support for building with WebKit 1 has been removed.
- All support for building with GTK+ 2 has been removed.
"cookie-changed" signal has been removed, due to a WebKit API limitation.
- The download creation API has been removed, due to a WebKit API limitation.
- The global
warn() functions have been removed in favor of the
:viewsource command is removed, and replaced with
WITH_UNIQUE build option has been removed, as
libunique is no longer used.
show_scrollbars property has been removed. It is replaced by the
- The default mouse forward/backward bindings have been removed.
- Support for
window.init_funcs has been removed. There are replacement signals that serve the same purpose.
- Changed outdated
- Fixed a desktop file issue preventing setting luakit as default browser for GNOME.
- Fixed evaluated scripts appearing in the web inspector debugger tab.
find_config() assuming the system configuration is located at
- Fixed luakit window losing initial focus, preventing some key bindings from working.
- Fixed luakit icon having incorrect permissions.
- Removed use of some deprecated functions.
- Fixed completion for hyphenated commands not working.
- Fixed bind activation for hyphenated commands not working.
- Fixed completion menu not closing.
- Fixed a segmentation fault when removing a non-present signal from an object.
- Fixed issues in how follow mode handled clicking on
- Fixed broken conditional in
- Fixed a bug where calling
load_failed_cb() would cause reload loops.
- Fixed a bug where the
"link-unhover" signal was not being emitted.
follow.lua to trigger more events to work around glitches.
go_up breaking on
- Fixed PKGBUILD issues.
- Fixed contributor emails.
- Fixed use-after-free of destroyed widgets.
- Fixed incorrect chrome page header z-index.
- Fixed a bug where the
child property always returned itself.
- Fixed a bug in URI
- Fixed long source paths appearing in Lua log output.
- Fixed formfiller silently failing to add forms.
- Fixed formfiller radio button and checkbox clicking behavior.
- Fixed errors when handling tabs with empty titles
- Change context menu 'New Window' items to 'New Tab' items
- Fixed a bug where
"property::textwidth" signal was not emitted.
- Fixed a bug where invalid color codes were silently ignored.
- Fixed unstable behavior when creating widgets without a specified type.
- Fixed the bookmarks chrome page missing pagination.
- Fixed a bug where user scripts would fail to add CSS on pages without a
- Fixed a bug where quitting luakit through the window manager circumvented luakit's exit prevention system.
- Fixed the
> binds not wrapping around consistently.
- Fixed a bug where the
"destroy" signal would not be emitted for some widget types.
- Numerous other fixes and performance improvements.
Contributors to this release:
- Aidan Holm (1585 commits)
- Jenny Wong (71 commits)
- Mason Larobina (17 commits)
- Grégory DAVID (8 commits)
- karottenreibe (7 commits)
- Ygrex (6 commits)
- Robbie Smith (4 commits)
- Michishige Kaito (4 commits)
- Ambrevar (3 commits)
- Yuriy Melnyk (2 commits)
- Plaque-fcc (2 commits)
- loblik (2 commits)
- Daniel Bolgheroni (2 commits)
- windowsrefund (1 commit)
- walt (1 commit)
- Robbie (1 commit)
- Peter Hofmann (1 commit)
- Nuno Vieira (1 commit)
- nmeum (1 commit)
- Kane Wallmann (1 commit)
- Jasper den Ouden (1 commit)
- gleachkr (1 commit)
- feivel (1 commit)
- eshizhan (1 commit)
- donlzx (1 commit)
- Bartłomiej Piotrowski (1 commit)
- Babken Vardanyan (1 commit)