{ config, lib, pkgs, ... }: let lpkgs = import ../5pkgs { inherit pkgs; }; inherit (lib) concatMapStrings ; plugins = with lpkgs.firefoxPlugins; [ noscript ublock vimperator ]; copyXpi = plugin: "cp ${plugin}/*.xpi $out/usr/lib/firefox-*/browser/extensions/"; preferences = pkgs.writeText "autoload.js" '' pref('general.config.filename', 'firefox.cfg'); pref('general.config.obscure_value', 0); ''; config = pkgs.writeText "firefox.cfg" '' // lockPref("app.update.enabled", false); lockPref("extensions.update.enabled", false); lockPref("autoadmin.global_config_url", ""); lockPref("extensions.checkUpdateSecurity", false); lockPref("services.sync.enabled", false); lockPref("browser.shell.checkDefaultBrowser", false); lockPref("layout.spellcheckDefault", 0); lockPref("app.update.auto", false); lockPref("browser.newtabpage.enabled", false); lockPref("noscript.firstRunRedirection", false); lockPref("noscript.hoverUI", false); lockPref("noscript.notify", false); defaultPref("extensions.newAddons", false); defaultPref("extensions.autoDisableScopes", 0); defaultPref("plugin.scan.plid.all", false); ''; in { environment.systemPackages = [ (pkgs.lib.overrideDerivation pkgs.firefox-bin (original : { installPhase = '' ${original.installPhase} find $out/usr/lib ${concatMapStrings copyXpi plugins} cd $out/usr/lib/firefox-*/ mkdir -p browser/defaults/preferences cp ${preferences} browser/defaults/preferences/autoload.js cp ${config} ./firefox.cfg ''; })) ]; }