From 267afa5a3b2851e9948adacb21013bb0656c1370 Mon Sep 17 00:00:00 2001 From: Robert Helgesson Date: Mon, 11 Mar 2019 00:55:32 +0100 Subject: [PATCH] firefox: add support for add-on packages Since no official source of packages exist the option is hidden for now. For adventurous people there is an overlay of a few selected add-ons available at https://rycee.gitlab.io/nixpkgs-firefox-addons/overlay.tar.gz This overlay is automatically built daily using the REST API available on https://addons.mozilla.org/. --- modules/programs/firefox.nix | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/modules/programs/firefox.nix b/modules/programs/firefox.nix index d51849e4..97991a13 100644 --- a/modules/programs/firefox.nix +++ b/modules/programs/firefox.nix @@ -6,6 +6,8 @@ let cfg = config.programs.firefox; + extensionPath = "extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"; + in { @@ -22,6 +24,23 @@ in description = "The unwrapped Firefox package to use."; }; + extensions = mkOption { + type = types.listOf types.package; + default = []; + example = literalExample '' + with pkgs.firefox-addons; [ + https-everywhere + privacy-badger + ] + ''; + description = '' + List of Firefox add-on packages to install. Note, it is + necessary to manually enable these extensions inside Firefox + after the first installation. + ''; + visible = false; + }; + enableAdobeFlash = mkOption { type = types.bool; default = false; @@ -60,5 +79,18 @@ in }; in [ (wrapper cfg.package { }) ]; + + home.file.".mozilla/${extensionPath}" = mkIf (cfg.extensions != []) ( + let + extensionsEnv = pkgs.buildEnv { + name = "hm-firefox-extensions"; + paths = cfg.extensions; + }; + in + { + source = "${extensionsEnv}/share/mozilla/${extensionPath}"; + recursive = true; + } + ); }; }