logo

blog

My website can't be that messy, right? git clone https://hacktivis.me/git/blog.git

badwolf.shtml (10218B)


  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
  3. <head>
  4. <!--#include file="/templates/head.shtml" -->
  5. <title>BadWolf — lanodan’s cyber-home</title>
  6. <meta name="description" content="BadWolf is a minimalist and privacy-oriented WebKitGTK browser.
  7. - Privacy-oriented: No browser-level tracking, multiple ephemeral isolated sessions per new unrelated tabs, JavaScript off by default;
  8. - Minimalist: Small codebase (~1 500), reuses existing components when available or makes them available;
  9. - Customizable: WebKitGTK native extensions, Interface customizable through CSS;
  10. - Powerful &amp; Usable: Stable User-Interface; The common shortcuts are available, no vi-modal edition or single-key shortcuts are used;
  11. - No annoyances: Dialogs are only used when required (save file, print, …), javascript popups open in a background tab" />
  12. </head>
  13. <body itemscope="" itemtype="https://schema.org/SoftwareApplication">
  14. <!--#include file="/templates/en/nav.shtml" -->
  15. <!--#set var="baseName" value='badwolf-1.3.0' -->
  16. <main itemprop="applicationCategory" content="BrowserApplication">
  17. <!--#include file="/projects/badwolf/nav.shtml" -->
  18. <h1 itemprop="name">BadWolf</h1>
  19. <cite>Doctor Who (2005), Season 1, Episode 13</cite>:
  20. <blockquote>
  21. <details>
  22. <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>
  23. <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 />
  24. <em>Rose</em>: I want you safe. My Doctor. Protected from the false god<br />
  25. <em>Dalek Emperor</em>: You cannot hurt me! I am immortal!<br />
  26. <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 />
  27. <em>Dalek Emperor</em>: I will not die! I cannot die!<br />
  28. </details>
  29. </blockquote>
  30. <a href="/images/badwolf_2020-05-15_light.png?serial=2020051501"><img itemprop="screenshot" loading="lazy" class="thumb_inline right" src="/images/badwolf_2020-05-15_light.png?serial=2020051501" alt="Screenshot of badwolf (light theme) on this page"/></a>
  31. <p itemprop="description">BadWolf is a minimalist and privacy-oriented <a href="http://webkitgtk.org/">WebKitGTK+</a> browser.</p>
  32. <dl>
  33. <dt>Privacy-oriented</dt>
  34. <dd>No browser-level tracking, multiple ephemeral isolated sessions per new unrelated tabs, JavaScript off by default</dd>
  35. <dt>Minimalist</dt>
  36. <dd>Small codebase (~1 500 <abbr title="Lines of Code">LoC</abbr>), reuses existing components when available or makes them available</dd>
  37. <dt>Customizable</dt>
  38. <dd>WebKitGTK native extensions, Interface customizable through CSS</dd>
  39. <dt>Powerful &amp; Usable</dt>
  40. <dd>Stable User-Interface; The common shortcuts are available, no vi-modal edition or single-key shortcuts are used</dd>
  41. <dt>No annoyances</dt>
  42. <dd>Dialogs are only used when required (save file, print, …), javascript popups open in a background tab</dd>
  43. </dl>
  44. <h2>Releases</h2>
  45. <ul>
  46. <li>From packages: <a href="https://repology.org/project/badwolf/versions">list of repositories</a></li>
  47. <li>From source: <code><a href="/releases/<!--#echo var="baseName" -->.tar.gz"><!--#echo var="baseName" -->.tar.gz</a></code> (<a href="/releases/<!--#echo var="baseName" -->.tar.gz.sign">signify/minisign</a>) <a href="/releases/<!--#echo var="baseName" -->.txt">changelog</a></li>
  48. </ul>
  49. <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>
  50. <p>
  51. Tarball signature check: <a href="https://flak.tedunangst.com/post/signify">signify</a>/<a href="https://github.com/jedisct1/minisign">minisign</a> is the recommended tool to use, you can find my key at <a href="/releases/signify/2021-04.pub">/releases/signify/2021-04.pub</a>, you can find more info about how I manage the keyset in: <a href="/articles/Bootstrapping%20signify%20for%20my%20assets">Bootstrapping signify for my assets</a>.<br />
  52. The command to verify the tarball looks like this: <code><kbd>signify -V -p signify/2021-04.pub -x <!--#echo var="baseName" -->.tar.gz.sign -m <!--#echo var="baseName" -->.tar.gz</kbd></code>
  53. </p>
  54. <h2>Tested and supported platforms</h2>
  55. <dl>
  56. <dt>OS</dt>
  57. <dd itemprop="operatingSystem">Linux <a class="fn" id="fn_linux_ori" href="#fn_linux">note</a>, NetBSD, OpenBSD, FreeBSD, Haiku (best effort due to lack of CI)</dd>
  58. <dt>CPU Architectures</dt>
  59. <dd>x86_64/amd64, x86(_32), armv7hf, armv8+/aarch64</dd>
  60. <dt>Windowing</dt>
  61. <dd>Wayland, X11</dd>
  62. </dl>
  63. <p>Similar systems should work, feel free to reports tests/bugs and volunteer on testing before releases are published.<br />
  64. Libre Systems where WebKitGTK is up-to-date (2.32.0+) are the target, proprietary systems (Windows, MacOS, Oracle Solaris, …) are unsupported.</p>
  65. <h2 id="contacts">Contacts / Discussions</h2>
  66. <dl>
  67. <dt>IRC Channel</dt>
  68. <dd><a href="ircs://irc.geeknode.org/#badwolf-browser">#badwolf-browser on GeekNode</a></dd>
  69. <dt>Matrix bridge</dt>
  70. <dd><a href="https://matrix.to/#/#badwolf-browser:matrix.fdn.fr">#badwolf-browser:matrix.fdn.fr</a></dd>
  71. <dt>Reaching main author directly</dt>
  72. <dd><a href="/about">contact page</a></dd>
  73. </dl>
  74. <h2>Tickets (bug, feature request, …)</h2>
  75. <p>
  76. Use the contact methods above before to confirm where your bug comes from,
  77. then you may use <a href="https://todo.sr.ht/~lanodan/badwolf">https://todo.sr.ht/~lanodan/badwolf</a> (no accounts needed).
  78. </p>
  79. <p>For security issues, sending me an email to <a href="mailto:contact+badwolf@hacktivis.me">contact+badwolf@hacktivis.me</a> with my <a href="/reop.pub">reop public key</a> (<a href="https://flak.tedunangst.com/post/reop">reop homepage</a>) is the preferred way.</p>
  80. <h2>Contributing</h2>
  81. <p>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.</p>
  82. <h3>Translation</h3>
  83. <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>
  84. <h3>Code</h3>
  85. <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>
  86. <ul>
  87. <li>You can use <a href="/git/badwolf" rel="vcs-git">/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>
  88. <li>You can use the <a href="https://sr.ht/~lanodan/badwolf">SourceHut mirror</a> as a fallback</li>
  89. <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>
  90. </ul>
  91. <h2>See also</h2>
  92. <h3>Similar browsers</h3>
  93. <p>Theses are the browsers where I drew inspiration or some hints from their code from:</p>
  94. <ul>
  95. <li><a href="https://www.torproject.org/download/">Tor Browser</a>: Would definitely recommend checking it out for stronger anonimization</li>
  96. <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>
  97. <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>
  98. </ul>
  99. <h3>Related content</h3>
  100. <h4>Own articles</h4>
  101. <ol>
  102. <li>2015-11-11: <a href="/articles/Mozilla%20is%20Broken">Mozilla is Broken</a></li>
  103. <li>2017-07-09: <a href="/articles/www-client%20are%20broken">www-client are broken</a> (which can serve as a loose roadmap)</li>
  104. <li>2020-04-17: <a href="/articles/BadWolf%2C%20one%20year%20later">BadWolf, one year later</a></li>
  105. </ol>
  106. <h4>Others articles</h4>
  107. <ol>
  108. <li><a rel="external" href="https://digdeeper.neocities.org/ghost/mozilla.html">Mozilla - Devil Incarnate</a></li>
  109. </ol>
  110. <h4>Others videos</h4>
  111. <ol>
  112. <li><quote>BadWolf Is A Minimal, Privacy-Oriented Web Browser</quote> <cite>DistroTube</cite>: <a rel="external" href="https://www.distrotube.com/videos/badwolf-is-a-minimal-privacy-oriented-browser/">distrotube.com</a>, <a rel="external" href="https://lbry.tv/@DistroTube:2/badwolf-is-a-minimal-privacy-oriented:6">lbry.tv</a>, <a rel="external" href="https://www.youtube.com/watch?v=EBWy1d-JE6A">Youtube</a></li>
  113. </ol>
  114. <h4>Related patches on WebKitGTK</h4>
  115. <p>They are into my <a href="/git/WebKitGTK">/git/WebKitGTK</a> repo. They're not required for badwolf but recommended to checkout. Here is the ones being upstreamed:</p>
  116. <ol>
  117. <li><a href="https://bugs.webkit.org/show_bug.cgi?id=210101#c6">Bug 210101 - [GTK][Stable] When using wayland webkit wants to take over the alsa device</a>: Includes a patch for fixing ALSA playback when launched in wayland (caused by sandboxing).</li>
  118. <li><a href="https://bugs.webkit.org/show_bug.cgi?id=212524">Bug 212524 - [GTK] Bubblewrap sandbox lacks support for sndio</a>: Includes a patch for adding sndio support</li>
  119. </ol>
  120. <dl>
  121. <dt id="fn_linux"><a href="#fn_linux_ori">Linux</a></dt>
  122. <dd>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.</dd>
  123. </dl>
  124. </main>
  125. <!--#include file="/templates/en/footer.shtml" -->
  126. </body>
  127. </html>