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 Who (2005), Season 1, Episode 13
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 existance 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 privacy-oriented WebKitGTK browser that doesn’t do compromises for first-usage intuitiveness. Privacy is the first goal, and it should be nicely usable/accessible (the security=usability-1 is false in my opinion). It should also stay fairly minimalist, stuff done in our dependencies that would need modification should be done upstream instead of us doing work we aren’t supposed to do in the first place.
For now it is de-facto is a personnal project but I welcome contributions and could add maintainers and move to a more community-oriented way of doing the development.
Features that are not wanted to be present by default will either be done as an option or as a separate branch, this is to avoid having a pile of browsers doing the same thing. Also extensions will try to be independant of the browser.
Badwolf is using Semantic Versioning with considering the User-Interface as an API. Once 1.0.0 release is out, a release branch (ie. 1.0.x) is supported for 6 months for any bug fixes and 2 years for security fixes.
You can get the releases tarballs and changelogs at https://hacktivis.me/releases/ and https://gitlab.com/lanodan/badWolf/-/tags, the latter also provides an Atom feed. Only source release are supported outside of ones supported by software distribution, static-linking and Flatpaks should work but their distribution of them will have to be done by some other party.
Packages / Recipes
- Alpine: Added in edge testing in 2019-12-30 as
- ArchLinux: Present in the AUR as
- Gentoo: Present in the GURU overlay as
And maybe other platforms not added to this list yet but can probably be found via https://repology.org/project/badwolf/versions
Tested and supported platforms
- OS: */Linux, NetBSD, OpenBSD, FreeBSD
- CPU Architectures: x86_64/amd64, armv7hf
- Display: Wayland, X11
- WebKitGTK: 2.26.x+, compiling it yourself is recommended
Badwolf should also work well on other similar systems, feel free to report tests on them and volunteer for testing releases before they are published.
If you have a libre system where WebKitGTK runs but isn't Linux or *BSD, I'll be interested in knowing about them. Proprietary systems are unsupported.
Tickets (bug, feature request, …)
You can reach me directly or write a ticket on the Gitlab repository.
For security issues, sending an email to firstname.lastname@example.org is the preferred way.
Please try to reach me before modifying code, I wish to avoid rejecting patches because their design didn't fit while the idea could be more than welcome.
Badwolf is using gettext po files for translations, help in getting it translated in more languages is welcome (but please do not submit machine translation, I can do this myself).
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-emailis accepted, here is a tutorial) at
- You can use the gitlab repository (note: will get cleanly migrated to something else at some point)
- You can also use other means, like an actual pull request(sending a link to a repo and a branch)
Theses are the browsers where I drew inspiration or some hints from their code from:
- lariza: Minimalist WebKitGTK browser, reuses tabbed, vi modal edition
- Epiphany (aka Gnome Web): GNOME-weight WebKitGTK browser, haven’t used it but looked at the code for hints