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 window -
Mod1+w
home -
Mod1+e
new tab -
Mod1+r
reload -
Mod1+d
download manager -
Mod1+2
search forward -
Mod1+n
search forward -
Mod1+3
search backward -
Mod1+l
location -
Mod1+k
initiate search -
Mod1+c
reload trusted certs -
Mod1+a
go one tab to the left -
Mod1+s
go one tab to the right -
F2
navigate forward -
F3
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
For complete documentation, review the latest README and man pages available on the Lariza project page.