-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbadwolf.1
167 lines (167 loc) · 6 KB
/
badwolf.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
.\" BadWolf: Minimalist and privacy-oriented WebKitGTK+ browser
.\" Copyright © 2019-2023 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 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 theses.
.Pp
Runtime configuration specific to
.Nm
will probably get added at a later release.
.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 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 [email protected]
.Sh BUGS
You can submit contributions or tickets to
.Lk https://sr.ht/~lanodan/badwolf/
with
.Xr git-send-email 1
for patches.