logo

blog

My website can't be that messy, right? git clone https://hacktivis.me/git/blog.git
commit: 9a0a8168e6053e359b13b6c88f6586d80868a40a
parent 1f7fb59b76f1b0ae3cd618ecc2ecded556e11423
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Mon, 11 May 2020 13:13:54 +0200

projects/badwolf: Large rewrite/redesign

Diffstat:

Mprojects/badwolf.shtml71++++++++++++++++++++++++++++++++++++++++-------------------------------
1 file changed, 40 insertions(+), 31 deletions(-)

diff --git a/projects/badwolf.shtml b/projects/badwolf.shtml @@ -8,63 +8,72 @@ <!--#include file="/templates/en/nav.shtml" --> <main> <h1>BadWolf</h1> + <cite>Doctor Who (2005), Season 1, Episode 13</cite>: <blockquote> - <details> - <summary><em>Rose</em>: 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.<br /></summary> - <em>Doctor</em>: 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!<br /> - <em>Rose</em>: I want you safe. My Doctor. Protected from the false god<br /> - <em>Dalek Emperor</em>: You cannot hurt me! I am immortal!<br /> - <em>Rose</em>: 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.<br /> - <em>Dalek Emperor</em>: I will not die! I cannot die!<br /> - </details> - </blockquote><cite>Doctor Who (2005), Season 1, Episode 13</cite> + <details> + <summary><em>Rose</em>: 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.<br /></summary> + <em>Doctor</em>: 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!<br /> + <em>Rose</em>: I want you safe. My Doctor. Protected from the false god<br /> + <em>Dalek Emperor</em>: You cannot hurt me! I am immortal!<br /> + <em>Rose</em>: 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.<br /> + <em>Dalek Emperor</em>: I will not die! I cannot die!<br /> + </details> + </blockquote> <a href="/images/badwolf_2019-05-11.png"><img class="thumb_inline right" src="/images/badwolf_2019-05-11.png" alt="Screenshot of badwolf on this page"/></a> - <p>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<sup>-1</sup> 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.</p> - <p>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.</p> - <p>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.</p> + <p>BadWolf is a minimalist and privacy-oriented <a href="http://webkitgtk.org/">WebKitGTK+</a> browser.</p> + <dl> + <dt>Privacy-oriented</dt> + <dd>No browser-level tracking, ephemeral sessions, isolated tabs, JavaScript off by default</dd> + <dt>Minimalist</dt> + <dd>Small codebase (~1 500 <abbr title="Lines of Code">LoC</abbr>), reuses existing components when available or makes it available</dd> + <dt>Customizable</dt> + <dd>WebKitGTK native extensions, Interface customizable through CSS</dd> + <dt>Powerful &amp; Usable</dt> + <dd>Stable User-Interface; The common shortcuts are available (and documented), no vi-modal edition or single-key shortcuts are used</dd> + <dt>No annoyances</dt> + <dd>Dialogs are only used when required (save file, print, …), javascript popups open in a background tab</dd> + </dl> <h2>Releases</h2> - <p>Badwolf is using <a href="https://semver.org/spec/v2.0.0.html">Semantic Versioning</a> 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.</p> - <p>You can get the releases tarballs and changelogs at <a href="https://hacktivis.me/releases/">https://hacktivis.me/releases/</a> and <a href="https://gitlab.com/lanodan/badWolf/-/tags">https://gitlab.com/lanodan/badWolf/-/tags</a>, the latter also provides an <a href="https://gitlab.com/lanodan/badWolf/-/tags?format=atom">Atom feed</a>. 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.</p> - <h3>Packages / Recipes</h3> <ul> - <!-- Alphabetically sorted --> - <li>Alpine: Added in edge testing in 2019-12-30 as <code><a href="https://pkgs.alpinelinux.org/packages?name=badwolf">badwolf</a></code></li> - <li>ArchLinux: Present in the AUR as <code><a href="https://aur.archlinux.org/packages/badwolf/">badwolf</a></code></li> - <li>Gentoo: Present in the <a href="https://wiki.gentoo.org/wiki/Project:GURU">GURU overlay</a> as <code><a href="http://gpo.zugaina.org/www-client/badwolf">www-client/badwolf</a></code></li> + <li>From packages: <a href="https://repology.org/project/badwolf/versions">list of repositories</a></li> + <li>From source: <code><a href="https://hacktivis.me/releases/badwolf-0.5.1.tar.gz">badwolf-0.5.1.tar.gz</a></code> (<a href="https://hacktivis.me/releases/badwolf-0.5.1.tar.gz.sign">signify/minisign</a>) <a href="https://hacktivis.me/releases/badwolf-0.5.1.txt">changelog</a></li> </ul> - <p>And maybe other platforms not added to this list yet but can probably be found via <a href="https://repology.org/project/badwolf/versions">https://repology.org/project/badwolf/versions</a></p> + <p>BadWolf is using <a href="https://semver.org/spec/v2.0.0.html">Semantic Versioning</a> with considering that the User-Interface is part of the interface stabilisation. Release branches (ie. <code>1.0.x</code>) are supported for 6 months for any bug fixes and 2 years for security fixes.</p> <h2>Tested and supported platforms</h2> - <ul> - <li>OS: */Linux, NetBSD, OpenBSD, FreeBSD</li> - <li>CPU Architectures: x86_64/amd64, armv7hf</li> - <li>Display: Wayland, X11</li> - <li>WebKitGTK: 2.28.0+, consider compiling it yourself</li> - </ul> - <p>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.<br />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.</p> + <dl> + <dt>OS</dt> + <dd>*/Linux, NetBSD, OpenBSD, FreeBSD</dd> + <dt>CPU Architectures</dt> + <dd>x86_64/amd64, armv7hf</dd> + <dt>Windowing</dt> + <dd>Wayland, X11</dd> + </dl> + <p>Similar systems should work, feel free to reports tests/bugs and volunteer on testing before releases are published.<br /> + Libre Systems where WebKitGTK is up-to-date (2.28.0+) are the target, proprietary systems are unsupported.</p> <h2>Tickets (bug, feature request, …)</h2> <p>You can <a href="/about">reach me</a> directly or write a ticket on the <a href="https://gitlab.com/lanodan/badwolf">Gitlab repository</a>.</p> <p>For security issues, sending an email to <a href="mailto:contact+badwolf-security@hacktivis.me">contact+badwolf-security@hacktivis.me</a> is the preferred way.</p> <h2>Contributing</h2> - <p>Please try to <a href="/about">reach me</a> before modifying code, I wish to avoid rejecting patches because their design didn't fit while the idea could be more than welcome.</p> + <p>Please try to <a href="/about">reach me</a> before doing so, 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.</p> <h3>Translation</h3> - <p>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).</p> + <p>Gettext <code>po</code> 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.</p> <h3>Code</h3> <p>The git repositories are using <a href="https://nvie.com/posts/a-successful-git-branching-model/">GitFlow</a> with commits that are clean with descriptive messages. I'll probably ask you to rewrite your commits or rewrite them if they aren't.</p> <ul> <li>You can use <a href="/git/badwolf">/git/badwolf.git</a> and send me an email (<code>git send-email</code> is accepted, <a href="https://git-send-email.io/">here is a tutorial</a>) at <code>contact+badwolf@hacktivis.me</code></li> <li>You can use <a href="https://gitlab.com/lanodan/badwolf">the gitlab repository</a> (note: will get cleanly migrated to something else at some point)</li> - <li>You can also use other means, like an actual pull request(sending a link to a repo and a branch)</li> + <li>You can also use other means, like an actual pull request(sending a link to a repository and a branch) or link to patches</li> </ul> <h2>See also</h2> <h3>Similar browsers</h3> <p>Theses are the browsers where I drew inspiration or some hints from their code from:</p> <ul> - <li><a href="https://uninformativ.de/git/lariza">lariza</a>: Minimalist WebKitGTK browser, reuses tabbed, vi modal edition</li> + <li><a href="https://uninformativ.de/git/lariza">lariza</a>: Minimalist WebKitGTK browser, reuses <code>tabbed</code> (and so is X11-bound), vi modal edition</li> <li><a href="https://wiki.gnome.org/Apps/Web">Epiphany</a> (aka Gnome Web): GNOME-weight WebKitGTK browser, haven’t used it but looked at the code for hints</li> </ul> <h3>Related Articles</h3>