badwolf.1 (6308B)
- .\" BadWolf: Minimalist and privacy-oriented WebKitGTK+ browser
- .\" Copyright © 2019-2024 Badwolf Authors <https://hacktivis.me/projects/badwolf>
- .\" SPDX-License-Identifier: BSD-3-Clause
- .Dd 2022-07-13
- .Dt BADWOLF 1
- .Os
- .Sh NAME
- .Nm badwolf
- .Nd minimalist and privacy-oriented web browser based on WebKitGTK
- .Sh SYNOPSIS
- .Nm
- .Op Ar webkit/gtk options
- .Op Fl iS
- .Op Ar URLs or paths
- .Sh DESCRIPTION
- .Nm
- 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 these.
- .Pp
- .Sh OPTIONS
- .Bl -tag -width Ds
- .It Fl i
- Disable Images.
- .It Fl S
- Enable JavaScript.
- .El
- .Sh CUSTOM SCHEMES
- .Nm
- supports the
- .Ql man:
- scheme, where for example
- .Xr man 1
- maps to
- .Lk man:man.1
- .Sh KEYBINDINGS
- The following section lists the keybinding by their action, each item is described by the widget the focus is on or
- .Aq any
- if it works for the whole window, followed by the keybind it grabs.
- .Bl -tag -width Ds
- .It webview Ctrl-Scroll
- Zooms the webpage in/out.
- .It webview Ctrl-0
- Resets webpage zoom to 100%.
- .It webview Ctrl-MousePrimary, webview MouseMiddle
- Opens the selected link in a new tab. (Note: JS still overrides the event)
- .It any Ctrl-t
- Creates a new tab (in a new session, similar as pressing the button)
- .It browser Ctrl-F4, browser Alt-d
- Closes the current tab
- .It browser Ctrl-f
- Focuses on the search entry
- .It browser Ctrl-l
- Focuses on the location(URL) entry
- .It browser Ctrl-Shift-r / Ctrl-r, browser F5
- Reloads the content in the current tab (with/without clearing cache)
- .It browser Escape
- Stops loading the content in the current tab
- .It browser Ctrl-Escape
- Terminates the web process
- .It browser F7
- Toggles caret browsing.
- .It browser F12
- Opens the web inspector.
- .It browser Ctrl-[ / Ctrl-]
- Go back/forward in current tab's history
- .It browser Ctrl-p
- Print the current page. (spawns a dialog)
- .It any Alt-Left / Alt-Right
- Go to the previous/next tab
- .It any F1
- Shows the about dialog
- .It any Alt-n
- Where n is any numeric-row key.
- Go to the n-th tab, 0 goes to the last one.
- .El
- .Ss DEFAULT ONES
- Here is a incomplete list of the default Webkit/GTK keybindings:
- .Bl -tag -width Ds
- .It any Ctrl-PageUp / Ctrl-PageDown
- Go to the previous/next tab
- .It search Ctrl-g / Ctrl-Shift-g
- When the search box is focused it goes to the Next/Previous search term.
- .It search Escape
- Cancels current search
- .It textarea Ctrl-;
- Insert Emoji
- .El
- .Sh ENVIRONMENT
- .Bl -tag -width Ds
- .It Ev BADWOLF_L10N
- A colon-separated list in the form lang_COUNTRY where lang is in ISO-639 and COUNTRY in ISO-3166.
- For example
- .Ic 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.
- .Pp
- To get the list of supported dictionaries execute
- .Ic enchant-lsmod-2 -list-dicts
- or before enchant 2.0:
- .Ic enchant-lsmod -list-dicts
- .El
- .Sh FILES
- The following paths are using
- .Xr sh 1
- syntax to correctly support XDG Base Directory Specification, you can use the
- .Xr echo 1
- command to check where it is on your system.
- .Pp
- .Bl -tag -width Ds -compact
- .It Pa ${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:
- .Lk https://webkit.org/blog/3476/content-blockers-first-look/
- .Lk https://webkit.org/blog/4062/targeting-domains-with-content-blockers/
- .Lk https://developer.apple.com/documentation/safariservices/creating_a_content_blocker
- .Pp
- For a converter using AblockPlus-style filters, try:
- .Lk https://gitlab.com/eyeo/adblockplus/abp2blocklist
- .Pp
- For a ready-to-use file (that you should update periodically), try:
- .Lk https://easylist-downloads.adblockplus.org/easylist_min_content_blocker.json
- .It Pa ${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.
- .It Pa ${XDG_DATA_HOME:-$HOME/.local/share}/badwolf/bookmarks.xbel
- XBEL (XML Bookmark Exchange Language) file, known to be currently supported by:
- .Xr elinks 1 ,
- .Xr konqueror 1 ,
- .Xr kbookmarkeditor 1 .
- .Pp
- You can do a symbolic link from their path, but you might prefer to use
- .Lk https://www.w3.org/TR/xinclude/ XInclude
- which is natively supported by
- .Nm
- to automatically merge multiple XBEL files.
- .Pp
- 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.
- .Pp
- For more information about this format see:
- .Lk http://pyxml.sourceforge.net/topics/xbel/
- .Pp
- For an example XBEL file see:
- .Lk https://hacktivis.me/bookmarks.xbel
- .It Pa ${XDG_DATA_HOME:-$HOME/.local/share}/badwolf/webkit-web-extension/
- Directory containing the
- .Lk https://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebExtension.html WebKitWebExtensions
- to be loaded into
- .Nm . Note: They aren't the JavaScript-based Web-Extensions supported by Firefox or Chrome, but native code in shared objects using the WebKitGTK API.
- .Pp
- Examples of useful extensions may be found at:
- .Lk https://hacktivis.me/git/badwolf-extensions
- .It Pa ${DATADIR:-/usr/local/share}/badwolf/interface.css
- .It Pa ${XDG_DATA_HOME:-$HOME/.local/share}/badwolf/interface.css
- CSS files (respectively system and user-level) for styling
- .Nm
- interface.
- See
- .Lk https://docs.gtk.org/gtk3/css-properties.html
- for the properties being available.
- .Pp
- For testing your styles I would recommend using the
- .Ev GTK_DEBUG=interactive
- environment variable on launching
- .Nm
- and going to the CSS tab.
- .It Pa ${XDG_DATA_HOME:-$HOME/.local/share}/badwolf/scripts/
- Directory containing JS userscripts (ending in
- .Ic .js )
- ran at the start of page loads,
- nesting down into iframes, useful to override website behaviors or add
- missing features to websites.
- .Pp
- Please note that for now unlike GreaseMonkey-style userscripts, they are
- always run, regardless of the hostname / URLs.
- .El
- .Sh AUTHORS
- .An Haelwenn (lanodan) Monnier Aq Mt contact+badwolf@hacktivis.me
- .Sh BUGS
- You can submit contributions or tickets to
- .Lk https://sr.ht/~lanodan/badwolf/
- with
- .Xr git-send-email 1
- for patches.