lariza
Lariza is a lightweight webkit2gtk browser, with low resource consumption, binary size and few dependencies. Lariza features tabbed browsing, custom user scripts, ad blocking and grep-like search functionality among other features. Furthermore, the user interface can be controlled entirely using keyboard shortcuts.
Installation
Lariza is available in the AUR as larizaAUR and lariza-gitAUR. Alternatively, source code is available on Uninformativ which can be built using make
.
Configuration
Environment variables
Below is a list of environment variables you can export
in your shell's rc file, accompanied by their default values.
LARIZA_ACCEPTED_LANGUAGE=en-US LARIZA_DOWNLOAD_DIR=/var/tmp LARIZA_ENABLE_CONSOLE_TO_STDOUT= LARIZA_FIFO_SUFFIX=/var/run/user/$UID/lariza.fifo-$LARIZA_FIFO_SUFFIX LARIZA_HISTORY_FILE= LARIZA_HOME_URI=about:blank LARIZA_TAB_POS=top LARIZA_TAB_WIDTH_CHARS=20 LARIZA_USER_AGENT= LARIZA_ZOOM=1.0
man lariza
Configuration files
Lariza can be further configured by modifying the following files:
$XDG_CONFIG_HOME/lariza/adblock $XDG_CONFIG_HOME/lariza/certs $XDG_CONFIG_HOME/lariza/scripts $XDG_DATA_HOME/lariza/web_extensions $XDG_CACHE_HOME/lariza $XDG_CACHE_HOME/webkitgtk $XDG_DATA_HOME/webkitgtk
Adblock
Support for blocking ads or URIs in general can be configured by creating $XDG_CONFIG_HOME/lariza/adblock
with regular expressions. Case-insensitive regexp and partial matches with glob wildcards are supported.
.*/ad/.* .*/ads/.* ^https?://ad.* ^https?://advert.* ^https?://.*\.advertising\.com/
~/.config/lariza/adblock.black
User Scripts
After a page has been successfully loaded, the directory ~/.config/lariza/user-scripts will be scanned and each file in it ending with .js will be run as a JavaScript file in the context of said page.
~/.config/lariza/scripts
Web Extensions
On startup, WebKit checks $XDG_CONFIG_HOME/lariza/web_extensions for any .so files. For more information see this blog post.
Trusted certificates
You can add your own _self-signed) certificates in $XDG_CONFIG_HOME/lariza/certs
Keybindings
Custom keybindings can be added (and existing ones can be modified) by changing the browser.c
file.
Examples
- You can change
GDK_MOD1_MASK
toGDK_CONTROL_MASK
to change keybings using the ALt (Mod1) key to using Control. - A keybind containing the line
webkit_settings_set_enable_javascript(webkit_web_view_get_settings(WEBKIT_WEB_VIEW(c->web_view)), FALSE);
can be added to disable JavaScript.
- When changing the default global modifier from
Alt
toCtrl
, make sure to change the keybindcase GDK_KEY_c: /* reload trusted certs (left hand) */
, to keep the clipboard copy shortcutCtlr+c
working. - The default
MOD1+q
(Close Window) andMOD1+w
(Home) bindings can lead to unexpected window exits due to the proximity of theq
andw
keys to one another. Limit exposure to this by modifyingGDK_KEY_q
and/orGDK_KEY_w
to suit.
Default key bindings
Mod1+q
close windowMod1+w
homeMod1+e
new tabMod1+r
reloadMod1+d
download managerMod1+2
search forwardMod1+n
search forwardMod1+3
search backwardMod1+l
locationMod1+k
initiate searchMod1+c
reload trusted certsMod1+a
go one tab to the leftMod1+s
go one tab to the rightF2
navigate forwardF3
navigate backward
Tips and Tricks
Speed Dial home page
You can create a static/dynamic HTML page with a list of links to serve as a Speed Dial page to be called with the home page key binding. See Lariza Speed Dial Example for a sample static page.
LARIZA_HOME_URI=file:///home/example/.config/lariza/bookmarks.html
Disabling JavaScript
Lariza enables JavaScript by default by passes through the default configuration of the underlying webkit2gtk engine. Disabling JavaScript requires rebuilding webkit2gtk with the -DENABLE_JIT=OFF
variable set.
As mentioned earlier, the line
webkit_settings_set_enable_javascript(webkit_web_view_get_settings(WEBKIT_WEB_VIEW(c->web_view)), FALSE);
can also be added to disable JavaScript. When doing this is recommended to also make keybindings to re-enable JavaScript when needed.
Patches
The developer of Lariza has made it clear that features will only be added to suit their own personal needs. The user is therefore encouraged to patch and modify the source code. For inspiration and information, one may check the PATCHES file.
Using Lariza
lariza [-C] [URI ...]
- Disable cooperative instances
$ lariza -C
- Append Lariza with multiple URIs to open in separate tabs:
$ lariza archlinux.org duck.com example.org
- Prepend Lariza with environment variables to switch the default cache and local storage locations to
/dev/null
:
$ XDG_CACHE_HOME=/dev/null XDG_DATA_HOME=/dev/null lariza
- Improve upon the previous example by setting the configuration files directory to tmpfs and running the profile completely in memory:
$ XDG_CONFIG_HOME=/tmp XDG_CACHE_HOME=/dev/null XDG_DATA_HOME=/dev/null lariza
XDG_CONFIG_HOME
must mirror the file and directory structure of ~/.config
whereby /tmp/lariza/keywordsearch
is the equivalent of ~/.config/lariza/keywordsearch.
# ~/.spectrwm.conf program[lariza] = firejail lariza -C bind[lariza] = Mod+l