lariza
lariza is a simple and lightweight browser with minimal dependencies against webkit2gtk. Generally considered to be one of the lightest front-end GUI interfaces to webkit2gtk in terms of binary size and resource consumption, notable features of lariza include an address/location bar, customizable user agent and regex-based adblocking, keyword based searching, a download manager and global content zoom. lariza leverages suckless.org tabbedAUR to support tabs within a single window instance. Additionally, lariza supports the XEmbed protocol which makes it possible to embed the runtime in another application. Notable feature exclusions include the lack of cookie/JavaScript/local storage toggles and support for custom stylesheets.
Installation
lariza is available in the AUR as lariza-gitAUR. Alternatively, source code is available on GitHub.
Install suckless.org tabbedAUR if support for tabs within a single window instance of lariza is desired. tabbed will run detached and be automatically picked up by lariza. An alternative to tabbed is the use of a window manager which supports native tabbing such as i3, PekWM and/or fluxbox.
Configuration
Environment variables
Customize select settings by way of environment variables in the rc file of your preferred shell:
export LARIZA_ACCEPTED_LANGUAGE=en-US export LARIZA_DOWNLOAD_DIR=/home/example/dump export LARIZA_HOME_URI=https://archlinux.org/ export LARIZA_USER_AGENT=Mozilla/5.0 (X11; Linux x86_64; rv:45.5.1) Gecko/20121011 Firefox/45.5.1 export LARIZA_ZOOM=1.0 # Default Zoom Level
Set various XDG environment variables to modify the default WebKit cache and/or local storage locations. To avoid establishing a global environment which affects other applications, XDG variables should be set before calling lariza. GTK variables can also be used to support the environment.
- Specify a theme and cache directory before launching lariza without support for tabbed:
$ GTK_THEME=Adwaita:dark XDG_CACHE_HOME=/tmp lariza -T
- See XDG Base Directory Specification.
- See Using lariza for additional examples.
Custom key bindings
Custom key bindings can be established to create a consistent and familiar input interface across applications. The default key bindings of lariza can be modified by adjusting the GDK definitions in the the browser.c
source code file. For example, switching the default global modifier from Alt
to Ctrl
requires changing all instances of GDK_MOD1_MASK
to GDK_CONTROL_MASK
.
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.Keyword based searching
Keyword based searching can be configured by creating ~/.config/lariza/keywordsearch
:
XDG_CONFIG_HOME
a https://aur.archlinux.org/packages/?O=0&SeB=n&K=%s cv https://web.nvd.nist.gov/view/vuln/search-results?query=%s[dead link 2020-12-27 ⓘ] d https://duckduckgo.com/html/?q=%s&kp=-1&k1=-1&kd=1 # g https://wiki.gentoo.org/index.php?&search=%s git https://github.com/search?&q=%s p https://archlinux.org/packages/?sort=&arch=x86_64&q=%s
Single line entries consist of a keyword and a URI %s
query. Typing git lariza
in the address field + Enter
will return the results of searching GitHub for lariza: https://github.com/search?&q=lariza. Note that #
commented lines are ignored.
Bookmarks workaround
The author of lariza has explicitly stated that support for bookmarks is not forthcoming. Workarounds include:
Keyword based bookmarks
a https://aur.archlinux.org/packages/?O=0&SeB=n&K=%s p https://archlinux.org/packages/?sort=&arch=x86_64&q=%s v https://web.nvd.nist.gov/view/vuln/search-results?query=%s[dead link 2020-12-27 ⓘ] ad https://lists.archlinux.org/pipermail/arch-dev-public/ bg http://www.securityfocus.com/archive/1
Similar to keyword based searching less the terminating query string. Typing bg
in the address field + Space
+ Enter
will return the current content of http://www.securityfocus.com/archive/1.
Speed Dial home page
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. Rather, lariza passes through the default configuration of the underlying webkit2gtk engine. Disabling JavaScript requires rebuilding webkit2gtk with the -DENABLE_JIT=OFF
variable set.
Adblock support
Support for blocking ads or URIs in general can be configured by creating ~/.config/lariza/adblock.black
with regular expressions. Case-insensitive regexp and partial matches with glob wildcards are supported.
.*/ad/.* .*/ads/.* ^https?://ad.* ^https?://advert.* ^https?://.*\.advertising\.com/
Using lariza
- Append lariza with multiple URIs to open in separate tabs:
$ lariza archlinux.org https://linux.slashdot.org/ file:///home/example/.config/lariza/bookmarks.html
- 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 https://3g2upl4pq6kufc4m.onion[dead link 2020-12-27 ⓘ]
- 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 https://344c6kbnjnljjzlz.onion[dead link 2020-12-27 ⓘ]
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 GitHub project page.
Open urls with external applications
With newer versions of lariza, page url or selected url can be sent to an executable lariza-external-handler. This can be used to open youtube video with mpv/youtube-dl or opening magnet link with your favorite torrent client. To use this feature create script named lariza-external-handler in your path and make it executable. For an example (this script uses dmenu)
#!/bin/bash shopt -s lastpipe ops=( mpv chromium ) option=$(for i in "${ops[@]}"; do echo "$i"; done | dmenu -p "open <u>$url</u> with...") [[ ! $option ]] && exit case "$option" in mpv) mpv "$2" ;; chromium) chromium "$2" ;; *) $option "$2" ;; esac
To call this script from lariza use key "alt+x", this will send page url to the script as "lariza-external-handler -u $url", or right click on a link and select lariza-external-handler from context menu.
Troubleshooting
lariza + tabbed freezes with certain key combinations
The default build of tabbedAUR binds two key combinations to spawn
. Key combinations which call spawn
to fork may freeze either lariza or the current X session or both.
- Avoid key press combinations bound to the
spawn
function call. This is the easiest solution. - Modify
spawn
bindings in tabbedconfig.h
to avoid conflicting with lariza key bindings. Rebuild tabbed. - Comment out all key combinations bound to
spawn
in tabbedconfig.h
. Rebuild tabbed.