badwolf.1 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. .\" BadWolf: Minimalist and privacy-oriented WebKitGTK+ browser
  2. .\" Copyright © 2019-2024 Badwolf Authors <https://hacktivis.me/projects/badwolf>
  3. .\" SPDX-License-Identifier: BSD-3-Clause
  4. .Dd 2022-07-13
  5. .Dt BADWOLF 1
  6. .Os
  7. .Sh NAME
  8. .Nm badwolf
  9. .Nd minimalist and privacy-oriented web browser based on WebKitGTK
  10. .Sh SYNOPSIS
  11. .Nm
  12. .Op Ar webkit/gtk options
  13. .Op Fl iS
  14. .Op Ar URLs or paths
  15. .Sh DESCRIPTION
  16. .Nm
  17. 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.
  18. .Pp
  19. .Sh OPTIONS
  20. .Bl -tag -width Ds
  21. .It Fl i
  22. Disable Images.
  23. .It Fl S
  24. Enable JavaScript.
  25. .El
  26. .Sh KEYBINDINGS
  27. The following section lists the keybinding by their action, each item is described by the widget the focus is on or
  28. .Aq any
  29. if it works for the whole window, followed by the keybind it grabs.
  30. .Bl -tag -width Ds
  31. .It webview Ctrl-Scroll
  32. Zooms the webpage in/out.
  33. .It webview Ctrl-0
  34. Resets webpage zoom to 100%.
  35. .It webview Ctrl-MousePrimary, webview MouseMiddle
  36. Opens the selected link in a new tab. (Note: JS still overrides the event)
  37. .It any Ctrl-t
  38. Creates a new tab (in a new session, similar as pressing the button)
  39. .It browser Ctrl-F4, browser Alt-d
  40. Closes the current tab
  41. .It browser Ctrl-f
  42. Focuses on the search entry
  43. .It browser Ctrl-l
  44. Focuses on the location(URL) entry
  45. .It browser Ctrl-Shift-r / Ctrl-r, browser F5
  46. Reloads the content in the current tab (with/without clearing cache)
  47. .It browser Escape
  48. Stops loading the content in the current tab
  49. .It browser Ctrl-Escape
  50. Terminates the web process
  51. .It browser F7
  52. Toggles caret browsing.
  53. .It browser F12
  54. Opens the web inspector.
  55. .It browser Ctrl-[ / Ctrl-]
  56. Go back/forward in current tab's history
  57. .It browser Ctrl-p
  58. Print the current page. (spawns a dialog)
  59. .It any Alt-Left / Alt-Right
  60. Go to the previous/next tab
  61. .It any F1
  62. Shows the about dialog
  63. .It any Alt-n
  64. Where n is any numeric-row key.
  65. Go to the n-th tab, 0 goes to the last one.
  66. .El
  67. .Ss DEFAULT ONES
  68. Here is a incomplete list of the default Webkit/GTK keybindings:
  69. .Bl -tag -width Ds
  70. .It any Ctrl-PageUp / Ctrl-PageDown
  71. Go to the previous/next tab
  72. .It search Ctrl-g / Ctrl-Shift-g
  73. When the search box is focused it goes to the Next/Previous search term.
  74. .It search Escape
  75. Cancels current search
  76. .It textarea Ctrl-;
  77. Insert Emoji
  78. .El
  79. .Sh ENVIRONMENT
  80. .Bl -tag -width Ds
  81. .It Ev BADWOLF_L10N
  82. A colon-separated list in the form lang_COUNTRY where lang is in ISO-639 and COUNTRY in ISO-3166.
  83. For example
  84. .Ic BADWOLF_L10N="en_GB:fr_FR:de_DE" .
  85. When this variable isn't set, spelling isn't activated.
  86. A more generic variable name is also intended to be used in the future.
  87. .Pp
  88. To get the list of supported dictionaries execute
  89. .Ic enchant-lsmod-2 -list-dicts
  90. or before enchant 2.0:
  91. .Ic enchant-lsmod -list-dicts
  92. .El
  93. .Sh FILES
  94. The following paths are using
  95. .Xr sh 1
  96. syntax to correctly support XDG Base Directory Specification, you can use the
  97. .Xr echo 1
  98. command to check where it is on your system.
  99. .Pp
  100. .Bl -tag -width Ds -compact
  101. .It Pa ${XDG_CONFIG_HOME:-$HOME/.config}/badwolf/content-filters.json
  102. WebKit-specific content-filter file, this allows to block unwanted content (ads, nagware, ...).
  103. For some introductory information about the format see:
  104. .Lk https://webkit.org/blog/3476/content-blockers-first-look/
  105. .Lk https://webkit.org/blog/4062/targeting-domains-with-content-blockers/
  106. .Lk https://developer.apple.com/documentation/safariservices/creating_a_content_blocker
  107. .Pp
  108. For a converter using AblockPlus-style filters, try:
  109. .Lk https://gitlab.com/eyeo/adblockplus/abp2blocklist
  110. .Pp
  111. For a ready-to-use file (that you should update periodically), try:
  112. .Lk https://easylist-downloads.adblockplus.org/easylist_min_content_blocker.json
  113. .It Pa ${XDG_CACHE_HOME:-$HOME/.cache}/badwolf/filters
  114. This is where the compiled filters are stored, the file(s) in it are automatically generated and so shouldn't be edited.
  115. Documented here only for sandboxing / access-control purposes.
  116. .It Pa ${XDG_DATA_HOME:-$HOME/.local/share}/badwolf/bookmarks.xbel
  117. XBEL (XML Bookmark Exchange Language) file, known to be currently supported by:
  118. .Xr elinks 1 ,
  119. .Xr konqueror 1 ,
  120. .Xr kbookmarkeditor 1 .
  121. .Pp
  122. You can do a symbolic link from their path, but you might prefer to use
  123. .Lk https://www.w3.org/TR/xinclude/ XInclude
  124. which is natively supported by
  125. .Nm
  126. to automatically merge multiple XBEL files.
  127. .Pp
  128. 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.
  129. .Pp
  130. For more information about this format see:
  131. .Lk http://pyxml.sourceforge.net/topics/xbel/
  132. .Pp
  133. For an example XBEL file see:
  134. .Lk https://hacktivis.me/bookmarks.xbel
  135. .It Pa ${XDG_DATA_HOME:-$HOME/.local/share}/badwolf/webkit-web-extension/
  136. Directory containing the
  137. .Lk https://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebExtension.html WebKitWebExtensions
  138. to be loaded into
  139. .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.
  140. .Pp
  141. Examples of useful extensions may be found at:
  142. .Lk https://hacktivis.me/git/badwolf-extensions
  143. .It Pa ${DATADIR:-/usr/local/share}/badwolf/interface.css
  144. .It Pa ${XDG_DATA_HOME:-$HOME/.local/share}/badwolf/interface.css
  145. CSS files (respectively system and user-level) for styling
  146. .Nm
  147. interface.
  148. See
  149. .Lk https://docs.gtk.org/gtk3/css-properties.html
  150. for the properties being available.
  151. .Pp
  152. For testing your styles I would recommend using the
  153. .Ev GTK_DEBUG=interactive
  154. environment variable on launching
  155. .Nm
  156. and going to the CSS tab.
  157. .It Pa ${XDG_DATA_HOME:-$HOME/.local/share}/badwolf/scripts/
  158. Directory containing JS userscripts (ending in
  159. .Ic .js )
  160. ran at the start of page loads,
  161. nesting down into iframes, useful to override website behaviors or add
  162. missing features to websites.
  163. .Pp
  164. Please note that for now unlike GreaseMonkey-style userscripts, they are
  165. always run, regardless of the hostname / URLs.
  166. .El
  167. .Sh AUTHORS
  168. .An Haelwenn (lanodan) Monnier Aq Mt contact+badwolf@hacktivis.me
  169. .Sh BUGS
  170. You can submit contributions or tickets to
  171. .Lk https://sr.ht/~lanodan/badwolf/
  172. with
  173. .Xr git-send-email 1
  174. for patches.