BadWolf
Doctor Who (2005), Season 1, Episode 13:Rose: I am the Bad Wolf, I create myself. I take the words… I scatter them in time and space. A message to lead myself here.
Doctor: Rose, you've got to stop this! You've go to stop this now! You got the entire vortex running through your head. You're gonna burn!
Rose: I want you safe. My Doctor. Protected from the false god
Dalek Emperor: You cannot hurt me! I am immortal!
Rose: You are tiny. I can see the whole of time and space. Every single atom of your existence and I divide them. Everything must come to dust. All things. Everything dies. The Time War ends.
Dalek Emperor: I will not die! I cannot die!
BadWolf is a minimalist and privacy-oriented WebKitGTK+ browser.
- Privacy-oriented
- No browser-level tracking, multiple ephemeral isolated sessions per new unrelated tabs, JavaScript off by default
- Minimalist
- Small codebase (~1 500 LoC), reuses existing components when available or makes them available
- Customizable
- WebKitGTK native extensions, Interface customizable through CSS
- Powerful & Usable
- Stable User-Interface; The common shortcuts are available, no vi-modal edition or single-key shortcuts are used
- No annoyances
- Dialogs are only used when required (save file, print, …), javascript popups open in a background tab
Releases
- From packages: list of repositories
- From source:
badwolf-1.3.0.tar.gz
(signify/minisign) changelog
BadWolf is using Semantic Versioning with considering that the User-Interface is part of the interface stabilisation. Release branches (ie. 1.0.x
) are supported for 6 months for any bug fixes and 2 years for security fixes.
Tarball signature check: signify/minisign is the recommended tool to use, you can find my key at /releases/signify/2021-04.pub, you can find more info about how I manage the keyset in: Bootstrapping signify for my assets.
The command to verify the tarball looks like this: signify -V -p signify/2021-04.pub -x badwolf-1.3.0.tar.gz.sign -m badwolf-1.3.0.tar.gz
Tested and supported platforms
- OS
- Linux note, NetBSD, OpenBSD, FreeBSD, Haiku (best effort due to lack of CI)
- CPU Architectures
- x86_64/amd64, x86(_32), armv7hf, armv8+/aarch64
- Windowing
- Wayland, X11
Similar systems should work, feel free to reports tests/bugs and volunteer on testing before releases are published.
Libre Systems where WebKitGTK is up-to-date (2.32.0+) are the target, proprietary systems (Windows, MacOS, Oracle Solaris, …) are unsupported.
Contacts / Discussions
- IRC Channel
- #badwolf-browser on GeekNode
- Matrix bridge
- #badwolf-browser:matrix.fdn.fr
- Reaching main author directly
- contact page
Tickets (bug, feature request, …)
Use the contact methods above before to confirm where your bug comes from, then you may use https://todo.sr.ht/~lanodan/badwolf (no accounts needed).
For security issues, sending me an email to contact+badwolf@hacktivis.me with my reop public key (reop homepage) is the preferred way.
Contributing
Please try to use one of the contact methods shown above before doing modifications, it seriously helps on integrating your contribution and could also point you at resources if you need help. Feel free to drop me a repository or patches of your local modifications though.
Translation
Gettext po
files are used for translations, this is supported by most translation helpers but a simple text editor is fine as there isn't much to translate. Please do not submit machine-only translations, it would already be done otherwise.
Code
The git repositories are using GitFlow with commits that are clean with descriptive messages. I'll probably ask you to rewrite your commits or rewrite them if they aren't.
- You can use /git/badwolf.git and send me an email (
git send-email
is accepted, here is a tutorial) atcontact+badwolf@hacktivis.me
- You can use the SourceHut mirror as a fallback
- You can also use other means, like an actual pull request(sending a link to a repository and a branch) or link to patches
See also
Similar browsers
Theses are the browsers where I drew inspiration or some hints from their code from:
- Tor Browser: Would definitely recommend checking it out for stronger anonimization
- lariza: Minimalist WebKitGTK browser, reuses
tabbed
(and so is X11-bound), vi modal edition - Epiphany (aka Gnome Web): GNOME-weight WebKitGTK browser, haven’t used it but looked at the code for hints
Related content
Own articles
- 2015-11-11: Mozilla is Broken
- 2017-07-09: www-client are broken (which can serve as a loose roadmap)
- 2020-04-17: BadWolf, one year later
Related patches on WebKitGTK
They are into my /git/WebKitGTK repo. They're not required for badwolf but recommended to checkout. Here is the ones being upstreamed:
- Bug 210101 - [GTK][Stable] When using wayland webkit wants to take over the alsa device: Includes a patch for fixing ALSA playback when launched in wayland (caused by sandboxing).
- Bug 212524 - [GTK] Bubblewrap sandbox lacks support for sndio: Includes a patch for adding sndio support
- Linux
- Alpine-style (musl, no-Systemd) in preference of the other possible choices. GNU software is mostly irrelevant and in fact the least supported. Bugs caused by systemd will be ignored.