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
Config 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.
Alt
to Ctrl
, make sure to change the keybind case GDK_KEY_c: /* reload trusted certs (left hand) */
, to keep the clipboard copy shortcut Ctlr+c
working.MOD1+q
(Close Window) and MOD1+w
(Home) bindings can lead to unexpected window exits due to the proximity of the q
and w
keys to one another. Limit exposure to this by modifying GDK_KEY_q
and/or GDK_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.
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.