From 367b0c114f38d5c332f5ee971ad13dd69e302dec Mon Sep 17 00:00:00 2001 From: tilpner Date: Mon, 15 Jun 2020 09:53:06 +0200 Subject: WIP towards module based configuration --- addons/default.nix | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 addons/default.nix (limited to 'addons/default.nix') diff --git a/addons/default.nix b/addons/default.nix new file mode 100644 index 0000000..2e648ce --- /dev/null +++ b/addons/default.nix @@ -0,0 +1,90 @@ +{ pkgs, lib, fetchurl, runCommand }: + +let + # Extension IDs are used as keys, see .applications.gecko.id in manifest.json + localAddon = { id, src, settings ? null }: { + policies = { + ExtensionSettings.${id} = { + installation_mode = "force_installed"; + install_url = "file://${src}"; + }; + } // (lib.optionalAttrs (settings != null) { + "3rdparty".Extensions.${id} = settings; + }); + }; + + addon = { id, url, sha256, settings ? null }: localAddon { + inherit id settings; + src = fetchurl { + inherit url sha256; + }; + }; +in { + # This can be safe-ish, if extension installation is also disabled + disableExtensionSignatureChecking.preferences = { + xpinstall.signatures.required = false; + }; + + privacybadger = addon { + id = "jid1-MnnxcxisBPnSXQ@jetpack"; + url = "https://addons.mozilla.org/firefox/downloads/file/3509922/privacy_badger-2020.2.19-an+fx.xpi"; + sha256 = "1issggv5wl5x3a4p3q8hrhbkhgsdx9f2qzbscg6y6f75yazswc20"; + settings = { + showIntroPage = false; + }; + }; + + noscript = addon { + id = "{73a6fe31-595d-460b-a920-fcc0f8843232}"; + url = "https://addons.mozilla.org/firefox/downloads/file/3517653/noscript_security_suite-11.0.15-an+fx.xpi"; + sha256 = "0gb0a6pp0rj9jpg1094arqvcwxh1rd2m47ijawlidybm29qmyyay"; + }; + + noscriptFork = localAddon { + id = "{73a6fe31-595d-460b-a920-fcc0f8843232}"; + src = import (pkgs.fetchzip { + url = https://git.tx0.co/firefox-profiles/noscript/snapshot/noscript-63e23c676fb86f33e70d7362bf625b534ce65346.tar.xz ; + sha256 = "0f0hna8fjj7vdjgmnjkd567smg8gda8jp9sl21nz3dx0s5d0vw8f"; + }); + settings.defaultSettings = builtins.readFile ./noscript/config.json; + }; + + ublock = addon { + id = "uBlock0@raymondhill.net"; + url = "https://addons.mozilla.org/firefox/downloads/file/3509800/ublock_origin-1.25.0-an+fx.xpi"; + sha256 = "0pyna4c2b2ffh8ifjj4c8ga9b73g37pk432nyinf8majyb1fq6rc"; + settings.adminSettings = builtins.readFile ./ublock/config.json; + }; + + qwantjunior = localAddon { + id = "qwantjunior@search.mozilla.org"; + src = runCommand "addon.xpi" { nativeBuildInputs = [ pkgs.zip ]; } '' + SRC=${./qwantsearch} + cd $SRC + zip -r $out . + ''; + + settings.settings = { + searchRegionKey = "DE"; + searchLanguageKey = "de"; + interfaceLanguageKey = "de_de"; + }; + }; + + qwantjuniorSystem.policies = { + "3rdparty".Extensions."qwantjunior@search.mozilla.org".settings = { + searchRegionKey = "DE"; + searchLanguageKey = "de"; + interfaceLanguageKey = "de_de"; + }; + }; + +/* + borderify.policies = { + ExtensionSettings."borderify@example.com" = { + installation_mode = "force_installed"; + install_url = "file://${../../borderify.xpi}"; + }; + }; +*/ +} -- cgit v1.2.3