Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
Nix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990{ pkgs, config, lib, ...}:let cfg = config.programs.thunderbird; policyFormat = pkgs.formats.json { }; policyDoc = "https://github.com/thunderbird/policy-templates";in{ options.programs.thunderbird = { enable = lib.mkEnableOption "Thunderbird mail client";
package = lib.mkPackageOption pkgs "thunderbird" { };
policies = lib.mkOption { type = policyFormat.type; default = { }; description = '' Group policies to install.
See [Thunderbird's documentation](${policyDoc}) for a list of available options.
This can be used to install extensions declaratively! Check out the documentation of the `ExtensionSettings` policy for details.
''; };
preferences = lib.mkOption { type = with lib.types; attrsOf (oneOf [ bool int str ]); default = { }; description = '' Preferences to set from `about:config`.
Some of these might be able to be configured more ergonomically using policies. ''; };
preferencesStatus = lib.mkOption { type = lib.types.enum [ "default" "locked" "user" "clear" ]; default = "locked"; description = '' The status of `thunderbird.preferences`.
`status` can assume the following values: - `"default"`: Preferences appear as default. - `"locked"`: Preferences appear as default and can't be changed. - `"user"`: Preferences appear as changed. - `"clear"`: Value has no effect. Resets to factory defaults on each startup. ''; }; };
config = lib.mkIf cfg.enable { environment.systemPackages = [ cfg.package ];
environment.etc = let policiesJSON = policyFormat.generate "thunderbird-policies.json" { inherit (cfg) policies; }; in lib.mkIf (cfg.policies != { }) { "thunderbird/policies/policies.json".source = policiesJSON; };
programs.thunderbird.policies = { DisableAppUpdate = true; Preferences = builtins.mapAttrs (_: value: { Value = value; Status = cfg.preferencesStatus; }) cfg.preferences; }; };
meta.maintainers = with lib.maintainers; [ nydragon ];}