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/.
This commit is contained in:
Robert Helgesson 2019-03-11 00:55:32 +01:00
parent 7ec153889c
commit 267afa5a3b
No known key found for this signature in database
GPG key ID: 36BDAA14C2797E89

View file

@ -6,6 +6,8 @@ let
cfg = config.programs.firefox; cfg = config.programs.firefox;
extensionPath = "extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}";
in in
{ {
@ -22,6 +24,23 @@ in
description = "The unwrapped Firefox package to use."; 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 { enableAdobeFlash = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
@ -60,5 +79,18 @@ in
}; };
in in
[ (wrapper cfg.package { }) ]; [ (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;
}
);
}; };
} }