No Description

Haelwenn (lanodan) Monnier 955bb1fb8b Merge branch 'release-1.2' into missy for 1.2.2 2 years ago
icons fb3246adea Logo: increase stroke size and contrast 4 years ago
mo 6dae2b3442 Makefile: Add building *.mo on compilation 5 years ago
po 7e0b751662 Hook and fixup Vietnamese translation 2 years ago
.clang-format 1f82848e4a Formatting: Break after the return type for definitions 5 years ago
.editorconfig ab21dd24ad .editorconfig: New file 4 years ago
.gitignore c5fca92a08 Change buildsystem to use a ./configure script 2 years ago
.gitlab-ci.yml ffd482d156 .gitlab-ci.yml: run test instead of build 4 years ago
COPYING 46ce59c9d6 Update copyright year 3 years ago
KnowledgeBase.md 27cf275730 KnowledgeBase: Add GObject reference counting notes 3 years ago
Makefile dd3e46487b Make: Add manpage linting 2 years ago
README.md dd3e46487b Make: Add manpage linting 2 years ago
badwolf.1 8575d17bc1 badwolf.1: Fix gtk-doc css-properties URL 2 years ago
badwolf.c eb30931ddc Use g_uri_unref instead of g_free on g_uri_parse 2 years ago
badwolf.desktop 657cacd378 badwolf.desktop: Icon=badwolf 4 years ago
badwolf.h 3f0e2f50f2 Switch from libsoup-2.4 to glib's GUri 2 years ago
badwolf.inkscape.svg fb3246adea Logo: increase stroke size and contrast 4 years ago
badwolf.svg fb3246adea Logo: increase stroke size and contrast 4 years ago
bookmarks.c 506ea6fa32 Add _() to bookmarks.c and update french translation 3 years ago
bookmarks.h 720eb415a7 Fix setting up completion 3 years ago
config.h 41cfd1ccae Show selected completion as a inline-selection 3 years ago
configure 4da2747780 Bump to 1.2.2 2 years ago
decisions.md af32582914 badwolf.h: Have uint64_t defined, explain context_id decision 3 years ago
downloads.c fcf27a7496 downloads: Destroy stop_icon only in downloadCb_finished 3 years ago
downloads.h ad8b3dd9b8 Download progress tab 4 years ago
icons_size.sh 96676069aa Add a logo 4 years ago
interface.css 74b19d3008 interface.css: Make context_label monospace 3 years ago
interface.txt 6ee5839da2 Close tab when releasing middle mouse click 2 years ago
keybindings.c ffc2fc8762 Initialize a GApplication 2 years ago
keybindings.h 6ee5839da2 Close tab when releasing middle mouse click 2 years ago
uri.c 46ce59c9d6 Update copyright year 3 years ago
uri.h 06b34a53c2 Add tests on badwolf_ensure_uri_scheme 4 years ago
uri_test.c 46ce59c9d6 Update copyright year 3 years ago
usr.bin.badwolf 46ce59c9d6 Update copyright year 3 years ago
version.sh c5fca92a08 Change buildsystem to use a ./configure script 2 years ago

README.md

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 are:

  • POSIX-compatible Shell (ie. mrsh, dash, lksh)
  • C11 Compiler (such as clang or gcc)
  • WebKitGTK, only the latest stable(2.32.0+) is supported
  • libxml-2.0, no known version limitation
  • POSIX make with extension for shell in variables (works with GNU, {Net,Free,Open}BSD)
  • A pkg-config implementation (pkgconf is recommended)
  • (optional) gettext implementation (such as GNU Gettext)
  • (optional, test) mandoc (the command) for linting the manpage

Compilation is done with ./configure && make, install with make install (DESTDIR and PREFIX environment variables are supported, amongs other common ones). 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.

You'll also need inkscape (command line only) if you want to regenerate the icons, for example after modifying them or adding a new size. These aren't needed for normal installation as it is 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.