Žiadny popis

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

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.