summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lass/2configs/firefoxPatched.nix58
-rw-r--r--lass/5pkgs/default.nix5
-rw-r--r--lass/5pkgs/firefoxPlugins/noscript.nix28
l---------lass/5pkgs/firefoxPlugins/result1
-rw-r--r--lass/5pkgs/firefoxPlugins/ublock.nix31
-rw-r--r--lass/5pkgs/firefoxPlugins/vimperator.nix19
6 files changed, 142 insertions, 0 deletions
diff --git a/lass/2configs/firefoxPatched.nix b/lass/2configs/firefoxPatched.nix
new file mode 100644
index 000000000..daf8a28be
--- /dev/null
+++ b/lass/2configs/firefoxPatched.nix
@@ -0,0 +1,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
+ '';
+ }))
+ ];
+}
+
diff --git a/lass/5pkgs/default.nix b/lass/5pkgs/default.nix
index 6df35b905..7427cb620 100644
--- a/lass/5pkgs/default.nix
+++ b/lass/5pkgs/default.nix
@@ -8,4 +8,9 @@ rec {
bitlbee-dev = callPackage ./bitlbee-dev.nix {};
bitlbee-steam = callPackage ./bitlbee-steam.nix { inherit bitlbee-dev; };
bitlbee = callPackage ./bitlbee.nix { inherit bitlbee-steam; };
+ firefoxPlugins = {
+ noscript = callPackage ./firefoxPlugins/noscript.nix {};
+ ublock = callPackage ./firefoxPlugins/ublock.nix {};
+ vimperator = callPackage ./firefoxPlugins/vimperator.nix {};
+ };
}
diff --git a/lass/5pkgs/firefoxPlugins/noscript.nix b/lass/5pkgs/firefoxPlugins/noscript.nix
new file mode 100644
index 000000000..67a00a1b2
--- /dev/null
+++ b/lass/5pkgs/firefoxPlugins/noscript.nix
@@ -0,0 +1,28 @@
+{ fetchgit, stdenv, bash, zip }:
+
+stdenv.mkDerivation rec {
+ name = "noscript";
+ id = "{73a6fe31-595d-460b-a920-fcc0f8843232}";
+
+ src = fetchgit {
+ url = "https://github.com/avian2/noscript";
+ rev = "c900a079793868bb080ab1e23522d29dc121b4c6";
+ sha256 = "1y06gh5a622yrsx0h7v92qnvdi97i54ln09zc1lvk8x430z5bdly";
+ };
+
+ buildInputs = [ zip ];
+
+ patchPhase = ''
+ substituteInPlace "version.sh" \
+ --replace "/bin/bash" "${bash}/bin/bash"
+ '';
+
+ buildPhase = ''
+ ./makexpi.sh
+ '';
+
+ installPhase = ''
+ mkdir -p $out/
+ cp *.xpi $out/${id}.xpi
+ '';
+}
diff --git a/lass/5pkgs/firefoxPlugins/result b/lass/5pkgs/firefoxPlugins/result
new file mode 120000
index 000000000..aa5334414
--- /dev/null
+++ b/lass/5pkgs/firefoxPlugins/result
@@ -0,0 +1 @@
+/nix/store/gxr152p1bbgqcd839b0rckdd1h5cr886-vimperator \ No newline at end of file
diff --git a/lass/5pkgs/firefoxPlugins/ublock.nix b/lass/5pkgs/firefoxPlugins/ublock.nix
new file mode 100644
index 000000000..29ef250e8
--- /dev/null
+++ b/lass/5pkgs/firefoxPlugins/ublock.nix
@@ -0,0 +1,31 @@
+{ fetchgit, stdenv, bash, python, zip }:
+
+stdenv.mkDerivation rec {
+ name = "ublock";
+ id = "{2b10c1c8-a11f-4bad-fe9c-1c11e82cac42}";
+
+ src = fetchgit {
+ url = "https://github.com/chrisaljoudi/uBlock";
+ rev = "a70a50052a7914cbf86d46a725812b98434d8c70";
+ sha256 = "1qfzy79f8x01i33x0m95k833z1jgxjwb8wvlr6fj6id1kxfvzh77";
+ };
+
+ buildInputs = [
+ zip
+ python
+ ];
+
+ patchPhase = ''
+ substituteInPlace "tools/make-firefox.sh" \
+ --replace "/bin/bash" "${bash}/bin/bash"
+ '';
+
+ buildPhase = ''
+ tools/make-firefox.sh all
+ '';
+
+ installPhase = ''
+ mkdir -p $out/
+ cp dist/build/uBlock.firefox.xpi $out/${id}.xpi
+ '';
+}
diff --git a/lass/5pkgs/firefoxPlugins/vimperator.nix b/lass/5pkgs/firefoxPlugins/vimperator.nix
new file mode 100644
index 000000000..dabef3d20
--- /dev/null
+++ b/lass/5pkgs/firefoxPlugins/vimperator.nix
@@ -0,0 +1,19 @@
+{ fetchgit, stdenv, zip }:
+
+stdenv.mkDerivation rec {
+ name = "vimperator";
+ id = "vimperator@mozdev.org";
+
+ src = fetchgit {
+ url = "https://github.com/vimperator/vimperator-labs.git";
+ rev = "ba7d8e72516fdc22246748c8183d7bc90f6fb073";
+ sha256 = "0drz67qm5hxxzw699rswlpjkg4p2lfipx119pk1nyixrqblcsvq2";
+ };
+
+ buildInputs = [ zip ];
+
+ installPhase = ''
+ mkdir -p $out/
+ cp downloads/vimperator*.xpi $out/${id}.xpi
+ '';
+}