lariza - ArchWiki

Jump to content
From ArchWiki

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

Tip: For further information about what these variables change and what their possible values are, see `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/

Note: In versions <21.01, the adblock file is located in `~/.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.

Note: In versions <20.03, the scripts folder is located in `~/.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` to `GDK_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.

Tip:

- When changing the default global modifier from `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.
- The default `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.

Note: Set the Lariza home page environment variable accordingly: `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.

Warning: This will effectively disable JavaScript across all applications which depend on webkit2gtk.

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

Note: This does not disable cache or local storage. Instead, cache and local storage data are retained within volatile memory and cleared upon application exit.

- 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

Note: `XDG_CONFIG_HOME` must mirror the file and directory structure of `~/.config` whereby `/tmp/lariza/keywordsearch` is the equivalent of `~/.config/lariza/keywordsearch.`

- Set Lariza to launch within a firejail sandbox using a spectrwm window manager key binding:

    # ~/.spectrwm.conf

    program[lariza] = firejail lariza -C
    bind[lariza] = Mod+l

## See also

- Lariza project page

Category:

- Web browser