aboutsummaryrefslogtreecommitdiff
path: root/modules/programs/firefox.nix
diff options
context:
space:
mode:
authorRobert Helgesson <robert@rycee.net>2019-08-18 10:57:30 +0200
committerRobert Helgesson <robert@rycee.net>2019-08-18 18:04:04 +0200
commit73641e492c2d761676110d52eb15607b308b5e70 (patch)
treee256a7076868fc4e3c13e498593393f9f945cdfd /modules/programs/firefox.nix
parentc2429ca0cfc5aabb128773c262915321009b4ea9 (diff)
firefox: use wrapped package
This makes the programs.firefox.package option take a pre-wrapped Firefox package as value if state version is set to "19.09" or later. This should make the Firefox module work with a wider range of Firefox packages.
Diffstat (limited to '')
-rw-r--r--modules/programs/firefox.nix36
1 files changed, 24 insertions, 12 deletions
diff --git a/modules/programs/firefox.nix b/modules/programs/firefox.nix
index c43781a7acb..e47bec3e171 100644
--- a/modules/programs/firefox.nix
+++ b/modules/programs/firefox.nix
@@ -45,9 +45,16 @@ in
package = mkOption {
type = types.package;
- default = pkgs.firefox-unwrapped;
- defaultText = "pkgs.firefox-unwrapped";
- description = "The unwrapped Firefox package to use.";
+ default =
+ if versionAtLeast config.home.stateVersion "19.09"
+ then pkgs.firefox
+ else pkgs.firefox-unwrapped;
+ defaultText = "pkgs.firefox";
+ description = ''
+ The Firefox package to use. If state versionĀ ā‰„Ā 19.09 then
+ this should be a wrapped Firefox package. For earlier state
+ versions it should be an unwrapped Firefox package.
+ '';
};
extensions = mkOption {
@@ -220,21 +227,26 @@ in
home.packages =
let
- # A bit of hackery to force a config into the wrapper.
- browserName = cfg.package.browserName
- or (builtins.parseDrvName cfg.package.name).name;
-
- fcfg = setAttrByPath [browserName] {
+ # The configuration expected by the Firefox wrapper.
+ fcfg = {
enableAdobeFlash = cfg.enableAdobeFlash;
enableGoogleTalkPlugin = cfg.enableGoogleTalk;
icedtea = cfg.enableIcedTea;
};
- wrapper = pkgs.wrapFirefox.override {
- config = fcfg;
- };
+ # A bit of hackery to force a config into the wrapper.
+ browserName = cfg.package.browserName
+ or (builtins.parseDrvName cfg.package.name).name;
+
+ # The configuration expected by the Firefox wrapper builder.
+ bcfg = setAttrByPath [browserName] fcfg;
+
+ package =
+ if versionAtLeast config.home.stateVersion "19.09"
+ then cfg.package.override { cfg = fcfg; }
+ else (pkgs.wrapFirefox.override { config = bcfg; }) cfg.package { };
in
- [ (wrapper cfg.package { }) ];
+ [ package ];
home.file = mkMerge (
[{