badwolf
—
minimalist and privacy-oriented web browser based on
WebKitGTK
badwolf |
[webkit/gtk options] [URLs or
paths] |
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.
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.
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
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
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 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
to be loaded into
badwolf
. 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.