Summary Files Commits Branches @commit @diff @stats
AgeCommit messageAuthorLinesSHA
2022-07-21goodwolf: Added a way for certain tabs to use their own WebView while the -ng... HEAD develop
 Syndamia
-42/+51f9a6530
2022-07-21goodwolf: Added a note in the help message about using -st without -ng
 Syndamia
-0/+1bd54ec5
2022-07-21goodwolf: Slight wording improvement of help message
 Syndamia
-1/+1900b469
[...]
 
TagDownloadAuthorAge
v1.2.2goodwolf-1.2.2.tar  goodwolf-1.2.2.tar.gz  goodwolf-1.2.2.zip  
 Haelwenn (lanodan) Monnier
5 years
[...]
 
Clone
https://git.syndamia.com/fork/goodwolf
git@syndamia.com:fork/goodwolf
 
BranchAge
snippet_Ramwolf9 days
develop4 years
NameSize
.builds77 Blog stats plain
.clang-format532 Blog stats plain blame
.editorconfig164 Blog stats plain blame
.gitignore38 Blog stats plain blame
.gitlab-ci.yml695 Blog stats plain blame
COPYING1.5 KiBlog stats plain blame
KnowledgeBase.md1.1 KiBlog stats plain blame
Makefile3.7 KiBlog stats plain blame
README.md4.4 KiBlog stats plain blame
bookmarks.c3.3 KiBlog stats plain blame
bookmarks.h164 Blog stats plain blame
bookmarks_test.c837 Blog stats plain blame
bookmarks_test.fixtures / full / goodwolf31 Blog stats plain
config.h3.9 KiBlog stats plain blame
configure5.8 KiBlog stats plain blame
decisions.md5.3 KiBlog stats plain blame
downloads.c7.7 KiBlog stats plain blame
downloads.h978 Blog stats plain blame
fmt.c828 Blog stats plain blame
fmt.h125 Blog stats plain blame
fmt_test.c1.5 KiBlog stats plain blame
goodwolf.15.4 KiBlog stats plain blame
goodwolf.c50.9 KiBlog stats plain blame
goodwolf.desktop606 Blog stats plain blame
goodwolf.fr.16.2 KiBlog stats plain blame
goodwolf.h1.3 KiBlog stats plain blame
goodwolf.inkscape.svg5.3 KiBlog stats plain blame
goodwolf.svg4.2 KiBlog stats plain blame
icons / hicolor34 Blog stats plain
icons_size.sh234 Blog stats plain blame
interface.css147 Blog stats plain blame
interface.txt1.5 KiBlog stats plain blame
keybindings.c6.4 KiBlog stats plain blame
keybindings.h650 Blog stats plain blame
mo33 Blog stats plain
po284 Blog stats plain
uri.c897 Blog stats plain blame
uri.h702 Blog stats plain blame
uri_test.c1.8 KiBlog stats plain blame
usr.bin.goodwolf2.0 KiBlog stats plain blame
version.sh366 Blog stats plain blame

BadWolf

Minimalist and privacy-oriented WebKitGTK+ browser.

Homepage: https://hacktivis.me/projects/badwolf

Copyright © 2019-2021 Badwolf Authors <https://hacktivis.me/projects/badwolf>
SPDX-License-Identifier: BSD-3-Clause

The name is a reference to BBC’s Doctor Who Tv serie, I took it simply because I wanted to have a specie in the name, like some other web browsers do, but doesn’t go into the “gentle” zone.

Differencies

Comparing from other small WebKit browsers for unixes found in the wild:

  • Independent of environment, should just work if GTK and WebKitGTK does
  • Storing data should be:
  • explicit and optionnal (ie. Applying preferences doesn't imply Saving to disk)
  • not queryabe by WebKit (so the web can't use it)
  • done in a standard format (like XBEL for bookmarks)
  • Static UI, no element should be added at runtime, this is to avoid potential tracking via viewport changes
  • Small codebase, should be possible to read and understand it completely over an afternoon.
  • Does not use modal editing (from vi) as that was designed for editing, not browsing
  • UTF-8 encoding by default

Motivation from other clients https://hacktivis.me/articles/www-client%20are%20broken

Contributing

Translations

You need to have gettext installed. If you want a GUI, poedit exists and Weblate is a good web platform that I might consider hosting at some point.

  • Syncing POT file with the source code: make po/messages.pot
  • Syncing PO file with the POT file: make po/de.po
  • Initialising a new PO file (example for German, de_DE): msginit -l de_DE -i po/messages.pot -o po/de.po

Contacts / Discussions

Repositories

git

release assets

Manual Installation

Dependencies

  • POSIX-compatible Shell (ie. mrsh, dash, lksh)
  • POSIX-compatible make(1) (ie. {Free,Net,Open}BSD make, GNU make)
  • A pkg-config implementation (pkgconf is recommended)
  • C11 Compiler (such as clang or gcc)
  • WebKitGTK, only the latest stable(2.32.0+) is supported
  • libxml-2.0, no known version limitation
  • (optional, translating) po4a to modify manpage translations
  • (optional, translating) gettext implementation (such as GNU Gettext)
  • (optional, lint) mandoc (the command) for linting the manpage
  • (optional, lint) shellcheck for linting the ./configure script
  • (optional, lint) flawfinder for examining C source code for flaws

Note: Packagers can safely ignore the lint dependencies.

Compiling

./configure && make

Note: configure is a simple shell script (so not autotools) which supports variables like PREFIX.

Installing

make install
# DESTDIR is supported

Debian users will probably want to use checkinstall instead.

An example AppArmor profile is provided at usr.bin.badwolf, please do some long runtime checks before shipping it or a modified version, help can be provided but with no support.

If you modify the icons, you'll need inkscape (command line only), to regenerate the bitmap versions. It isn't needed for a normal installation as the bitmap icons are bundled.

Notes

Most of the privacy/security stuff will be done with patches against WebKit as quite a lot isn’t into WebKitSettings and with generic WebKit extensions that should be resuseable.