firefox: add module

This commit is contained in:
Robert Helgesson 2017-01-11 00:36:43 +01:00
parent cbc4188b68
commit 5cb1ede034
No known key found for this signature in database
GPG key ID: C3DB11069E65DC86
2 changed files with 56 additions and 0 deletions

View file

@ -11,6 +11,7 @@ let
./programs/beets.nix ./programs/beets.nix
./programs/eclipse.nix ./programs/eclipse.nix
./programs/emacs.nix ./programs/emacs.nix
./programs/firefox.nix
./programs/git.nix ./programs/git.nix
./programs/gnome-terminal.nix ./programs/gnome-terminal.nix
./programs/lesspipe.nix ./programs/lesspipe.nix

View file

@ -0,0 +1,55 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.programs.firefox;
in
{
options = {
programs.firefox = {
enable = mkEnableOption "Firefox";
package = mkOption {
type = types.package;
default = pkgs.firefox-unwrapped;
defaultText = "pkgs.firefox-unwrapped";
description = "The unwrapped Firefox package to use.";
};
enableAdobeFlash = mkOption {
type = types.bool;
default = false;
description = "Whether to enable the unfree Adobe Flash plugin.";
};
enableGoogleTalk = mkOption {
type = types.bool;
default = false;
description = "Whether to enable the unfree Google Talk plugin.";
};
};
};
config = mkIf cfg.enable {
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] {
enableAdobeFlash = cfg.enableAdobeFlash;
enableGoogleTalkPlugin = cfg.enableGoogleTalk;
};
wrapper = pkgs.wrapFirefox.override {
config = fcfg;
};
in
[ (wrapper cfg.package { }) ];
};
}