schizark
Portable declarative Firefox with minimal overhead.
Summary
| Latest Version | Unknown |
|---|---|
| License | Unknown |
| CI Status | Failing |
| Stars | 1 |
| Forks | 0 |
| Open Issues | 0 |
| Last Commit | 2026-08-29 |
| Downloads | 0 |
| Last Indexed | 2026-09-07 06:08 |
Tags
Installation
nimble install schizark
choosenim install schizark
git clone https://gitlab.com/schizark/schizark
OS Compatibility
| Platform | Linux | macOS | Windows | FreeBSD | OpenBSD | NetBSD | Android | iOS | WASM | Embedded |
|---|---|---|---|---|---|---|---|---|---|---|
| schizark | ✓ | ✓ | ✓ | - | - | - | - | - | - | - |
Source
| Repository | https://gitlab.com/schizark/schizark |
|---|---|
| Homepage | https://gitlab.com/schizark/schizark |
| Registry Source | gitlab |
README
Schizark
Schizark is a framework for declaratively managing and customising Firefox-based browsers - building your own Firefox "distributions". It is a thin wrapper that allows simple and easy creation of custom, portable packages, which aren't locked to NixOS or Home Manager.
Schizark's defaults (based on Schizofox and arkenfox's), and are hardened to prioritise security, then privacy, without significantly compromising the actual browsing experience. They are designed to work alongside uBlock Origin and containers.
[!WARNING] Alpha-Quality Software This is alpha-quality software, and may be changed fundamentally in ways that make backwards compatibility impossible. Please only use this if you are willing to help test and discover bugs in the current implementation.
See the docs for installation and configuration help, including a variety of useful recipes.
Features
Using Nix to configure your browser has similar core advantages and capabilities to other nix wrappers. Simpler browser wrappers leave it to the consumer to figure out the logic behind some of these core features, like theming.
-
Portable: Standalone package option designed to be possible to run anywhere.
-
Themable: Custom stylesheets/css bundled with the browser and loaded automatically.
- Theming options allow customising browser colourscheme automagically, courtesy of Schizofox's stylesheets.
-
All CSS targets supported - no need to figure out which
about:pages are themed usinguserChrome.cssand which are themed usinguserContent.css. -
Customisable: Easily bundle custom preferences and policies which can alter almost everything you want to change.
-
Portable Extensions: Supports both nix-built and automatically-installed extensions.
"/core".policies.ExtensionSettingssupports both (see the recipes).
Our design choices also lend themselves towards other advantages.
- Thin: Core options defining reasonable interfaces. We prioritise configuring things the way the browser intends, instead of hiding things behind ultra-abstracted options.
-
Programmable:
"/wrapper".extraPrefsallows running JavaScript with access to browser internals on launch. -
Efficient: The adios module system is designed for efficient evaluation, and will only evaluate what is actually necessary.
- You can link and unlink modules you don't want to use to speed up evaluation (instead of more expensive
enableoptions). -
See the defaults, and recipes - especially for integrations with other projects and tools.
-
Flexible: This project supports both
nix2andnix3/flakes (via thenix2interface).
Give the defaults a try using nix run gitlab:schizark/schizark --experimental-features "nix-command flakes".
Flakes and the nix3 CLI do not need to be enabled to use the project, just the example.
Inspiration
Many of the core goals of this project are based on Schizofox, a project by @NotAShelf and @sioodmy.
The core design decisions are inspired by nvf+mnw's designs, projects originally by @NotAShelf and @Gerg-L. In particular, light, typed options passed to a wrapper + additional helper options where legitimately useful.
Defaults and suggestions are based partially on arkenfox (MIT).
License
This project is based partially on Schizofox (which is probably GPLv3 only) and in a lesser sense nvf (MIT). As a result of the virality of the GPL, this project is licensed GPLv3 only. Modified MPL-2.0 files are licensed either MPL-2.0 or GPLv3 only (at your option).
Some code is adapted from elsewhere (for example, PostmarketOS's MPL-2.0 autoconfig setup). Attribution and licensing information is provided where such code is used. Note that MPL-2.0 code may be included in GPL works, when licensing information remains, and it is kept as a separate file.