Açıklama Yok

Haelwenn (lanodan) Monnier 1afe2e700e Add man: scheme handling 5 ay önce
.builds 83a8bb84a7 .builds/netbsd.yml: Explicitely pick pkgin-installed xgettext 10 ay önce
.reuse 4f330a1168 Make repository reuse compliant 2 yıl önce
LICENSES 87ab455687 bookmarks*: Relicense under MPL-2.0 7 ay önce
bookmarks_test.fixtures 4f330a1168 Make repository reuse compliant 2 yıl önce
icons fb3246adea Logo: increase stroke size and contrast 4 yıl önce
mo 6dae2b3442 Makefile: Add building *.mo on compilation 5 yıl önce
po f18b476c29 po/sr{,_man}.po: Fix copyright header for REUSE 7 ay önce
.clang-format 27742f6afb .clang-format: AllowShortCaseLabelsOnASingleLine: false 2 yıl önce
.editorconfig 4f330a1168 Make repository reuse compliant 2 yıl önce
.gitignore 0a4778bfe2 .gitignore: ./*_test and ./install.sh 1 yıl önce
.gitlab-ci.yml 4f330a1168 Make repository reuse compliant 2 yıl önce
.mailmap bc68495911 .mailmap: Add gitlab placeholder email of Ben K 10 ay önce
AUTHORS 98a2c0a463 AUTHORS: Add Страхиња Радић 10 ay önce
COPYING 4f330a1168 Make repository reuse compliant 2 yıl önce
KnowledgeBase.md 4f330a1168 Make repository reuse compliant 2 yıl önce
README.md dc32b5fd7c README: Change mirror links from gitlab.com to git.sr.ht 1 yıl önce
badwolf.1 1afe2e700e Add man: scheme handling 5 ay önce
badwolf.c 1afe2e700e Add man: scheme handling 5 ay önce
badwolf.de.1 caf0a4d2cd badwolf.de.1: Bundle 1 yıl önce
badwolf.desktop 1afe2e700e Add man: scheme handling 5 ay önce
badwolf.fr.1 6b89da092c manpage: Note the lack of GM-style userscript filtering 1 yıl önce
badwolf.h 1afe2e700e Add man: scheme handling 5 ay önce
badwolf.inkscape.svg fb3246adea Logo: increase stroke size and contrast 4 yıl önce
badwolf.sr.1 e4a3ceb7cc Add Serbian translation 1 yıl önce
badwolf.svg fb3246adea Logo: increase stroke size and contrast 4 yıl önce
badwolf.tr.1 7472e3d607 po/tr_man.po: Fix syntax error due to ASCII apostrophe 1 yıl önce
badwolf.vi.1 40fe40ee4c Update Vietnamese translation and manpage 1 yıl önce
bookmarks.c 87ab455687 bookmarks*: Relicense under MPL-2.0 7 ay önce
bookmarks.h 87ab455687 bookmarks*: Relicense under MPL-2.0 7 ay önce
bookmarks_test.c 87ab455687 bookmarks*: Relicense under MPL-2.0 7 ay önce
build.ninja c8881b0345 configure: Simplify missing ed handling 1 yıl önce
config.h 1afe2e700e Add man: scheme handling 5 ay önce
configure 1afe2e700e Add man: scheme handling 5 ay önce
decisions.md a75502e95b decisions: Switch from Makefile to *.ninja 1 yıl önce
downloads.c f8d6696b46 Make `struct Window *window` a global variable 7 ay önce
downloads.h f8d6696b46 Make `struct Window *window` a global variable 7 ay önce
fmt.c 4f330a1168 Make repository reuse compliant 2 yıl önce
fmt.h 4f330a1168 Make repository reuse compliant 2 yıl önce
fmt_test.c 4f330a1168 Make repository reuse compliant 2 yıl önce
icons_size.sh 4f330a1168 Make repository reuse compliant 2 yıl önce
interface.css 4f330a1168 Make repository reuse compliant 2 yıl önce
interface.md 4f330a1168 Make repository reuse compliant 2 yıl önce
keybindings.c 508cf3ec91 Fix spelling errors 7 ay önce
keybindings.h f8d6696b46 Make `struct Window *window` a global variable 7 ay önce
man_uri_scheme.c 1afe2e700e Add man: scheme handling 5 ay önce
uri.c 4f330a1168 Make repository reuse compliant 2 yıl önce
uri.h 4f330a1168 Make repository reuse compliant 2 yıl önce
uri_test.c 4f330a1168 Make repository reuse compliant 2 yıl önce
userscripts.c 7371b0b682 userscripts: Formatting fix 1 yıl önce
userscripts.h 7f4b6c8400 Add UserScripts support 1 yıl önce
usr.bin.badwolf 46ce59c9d6 Update copyright year 3 yıl önce
version.sh 4f330a1168 Make repository reuse compliant 2 yıl önce

README.md

BadWolf

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

Minimalist and privacy-oriented WebKitGTK+ browser.

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

The name is a reference to BBC's Doctor Who TV series, 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.

Differences

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 optional (i.e. 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: ninja po/messages.pot
  • Syncing PO file with the POT file: ninja 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 (i.e. mrsh, dash, lksh)
  • ninja or samurai
  • 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, translating) ed(1), the standard editor
  • (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
  • (optional, lint) reuse for checking REUSE compliance

Note: Packagers can safely ignore the lint dependencies.

Compiling

./configure && ninja

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

Installing

ninja 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 reusable.