BADWOLF(1)

NAME
badwolf - minimalist and privacy-oriented web browser based on WebKitGTK

SYNOPSIS
badwolf [webkit/gtk options] [URLs or paths]

DESCRIPTION
badwolf is a minimalist browser that cares about privacy, it is based on WebKitGTK and thus also accepts WebKitGTK (and dependencies) flags and environment variables, unfortunately there doesn't seems to be manpages for theses.

Runtime configuration specific to badwolf will probably get added at a later release.

KEYBINDINGS
The following section lists the keybinding by their action, each item is described by the widget the focus is on or <any> if it works for the whole window, followed by the keybind it grabs.

webview Ctrl-Scroll
    Zooms the webpage in/out.

webview Ctrl-0
    Resets webpage zoom to 100%.

webview Ctrl-MousePrimary, webview MouseMiddle
    Opens the selected link in a new tab. (Note: JS still overrides the event)

any Ctrl-t
    Creates a new tab (in a new session, similar as pressing the button)

browser Ctrl-F4, browser Alt-d
    Closes the current tab

browser Ctrl-f
    Focuses on the search entry

browser Ctrl-l
    Focuses on the location(URL) entry

browser Ctrl-Shift-r / Ctrl-r, browser F5
    Reloads the content in the current tab (with/without clearing cache)

browser Escape
    Stops loading the content in the current tab

browser F7
    Toggles caret browsing.

browser F12
    Opens the web inspector.

browser Ctrl-[ / Ctrl-]
    Go back/forward in current tab's history

browser Ctrl-p
    Print the current page. (spawns a dialog)

any Alt-Left / Alt-Right
    Go to the previous/next tab

any F1
    Shows the about dialog

any Alt-n
    Where n is any numeric-row key. Go to the n-th tab, 0 goes to the last one.

  DEFAULT ONES
Here is a incomplete list of the default Webkit/GTK keybindings:

any Ctrl-PageUp / Ctrl-PageDown
    Go to the previous/next tab

search Ctrl-g / Ctrl-Shift-g
    When the search box is focused it goes to the Next/Previous search term.

search Escape
    Cancels current search

textarea Ctrl-;
    Insert Emoji

ENVIRONMENT

BADWOLF_L10N
    A colon-separated list in the form lang_COUNTRY where lang is in ISO-639 and COUNTRY in ISO-3166. For example BADWOLF_L10N="en_GB:fr_FR:de_DE". When this variable isn't set, spelling isn't activated. A more generic variable name is also intended to be used in the future.

    To get the list of supported dictionaries execute enchant-lsmod-2 -list-dicts or before enchant 2.0: enchant-lsmod -list-dicts

FILES
The following paths are using sh(1) syntax to correctly support XDG Base Directory Specification, you can use the echo(1) command to check where it is on your system.

${XDG_CONFIG_HOME:-$HOME/.config}/badwolf/content-filters.json
    WebKit-specific content-filter file, this allows to block unwanted content (ads, nagware, ...). For some introductory information about the format see: https://webkit.org/blog/3476/content-blockers-first-look/ https://webkit.org/blog/4062/targeting-domains-with-content-blockers/ https://developer.apple.com/documentation/safariservices/creating_a_content_blocker

    For a converter using AblockPlus-style filters, try: https://gitlab.com/eyeo/adblockplus/abp2blocklist

    For a ready-to-use file (that you should update periodically), try: https://easylist-downloads.adblockplus.org/easylist_min_content_blocker.json
${XDG_CACHE_HOME:-$HOME/.cache}/badwolf/filters
    This is where the compiled filters are stored, the file(s) in it are automatically generated and so shouldn't be edited. Documented here only for sandboxing / access-control purposes.
${XDG_DATA_HOME:-$HOME/.local/share}/badwolf/bookmarks.xbel
    XBEL (XML Bookmark Exchange Language) file, known to be currently supported by: elinks(1), konqueror(1), kbookmarkeditor(1).

    You can do a symbolic link from their path, but you might prefer to use XInclude: https://www.w3.org/TR/xinclude/ which is natively supported by badwolf to automatically merge multiple XBEL files.

    Also the bookmark entries aren't re-sorted, so you might want to put your most frequently used ones at the top of the file.

    For more information about this format see: http://pyxml.sourceforge.net/topics/xbel/

    For an example XBEL file see: https://hacktivis.me/bookmarks.xbel
${XDG_DATA_HOME:-$HOME/.local/share}/badwolf/webkit-web-extension/
    Directory containing the WebKitWebExtensions: https://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebExtension.html to be loaded into. Note: They aren't the JavaScript-based Web-Extensions supported by Firefox or Chrome, but native code in shared objects using the WebKitGTK API.

    Examples of useful extensions may be found at: https://hacktivis.me/git/badwolf-extensions
${DATADIR:-/usr/local/share}/badwolf/interface.css
${XDG_DATA_HOME:-$HOME/.local/share}/badwolf/interface.css
    CSS files (respectively system and user-level) for styling badwolf interface. See https://docs.gtk.org/gtk3/css-properties.html for the properties being available.

    For testing your styles I would recommend using the GTK_DEBUG=interactive environment variable on launching badwolf and going to the CSS tab.
${XDG_DATA_HOME:-$HOME/.local/share}/badwolf/scripts/
    Directory containing JS userscripts (ending in .js) ran at the start of page loads, nesting down into iframes, useful to override website behaviors or add missing features to websites.

    Please note that for now unlike GreaseMonkey-style userscripts, they are always run, regardless of the hostname / URLs.

AUTHORS
Haelwenn (lanodan) Monnier <contact+badwolf@hacktivis.me>

BUGS
You can submit contributions or tickets to https://sr.ht/~lanodan/badwolf/ with git-send-email(1) for patches.