diff options
author | Robert Helgesson <robert@rycee.net> | 2019-08-18 10:57:30 +0200 |
---|---|---|
committer | Robert Helgesson <robert@rycee.net> | 2019-08-18 18:04:04 +0200 |
commit | 73641e492c2d761676110d52eb15607b308b5e70 (patch) | |
tree | e256a7076868fc4e3c13e498593393f9f945cdfd /modules/programs/firefox.nix | |
parent | c2429ca0cfc5aabb128773c262915321009b4ea9 (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.nix | 36 |
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 ( [{ |