badwolf

Minimalist and privacy-oriented WebKitGTK browser

Pure Nim score 22/100 · last commit 2022-07-07 · 37 stars · tests present · no docs generated

Summary

Latest Version Unknown
License Unknown
CI Status Failing
Stars 37
Forks 5
Open Issues 0
Last Commit 2022-07-07
Downloads 0
Last Indexed 2026-09-06 06:05

Installation

nimble install badwolf
choosenim install badwolf
git clone https://gitlab.com/lanodan/badWolf

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
badwolf - - - - - - -

Source

Repository https://gitlab.com/lanodan/badWolf
Homepage https://gitlab.com/lanodan/badWolf
Registry Source gitlab

README

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.