summaryrefslogtreecommitdiffstats
path: root/lass/2configs/firefoxPatched.nix
blob: daf8a28bea9c44c00a3a5a7bfee1f1689e6c49a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
{ 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
      '';
    }))
  ];
}