From fccb44df77266a3891939f35197f538dace3442f Mon Sep 17 00:00:00 2001 From: Ivy Pierlot Date: Fri, 29 Aug 2025 15:22:37 +1000 Subject: [PATCH] mkFirefoxModule: make policies work on darwin --- modules/programs/firefox/default.nix | 1 + modules/programs/firefox/mkFirefoxModule.nix | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/modules/programs/firefox/default.nix b/modules/programs/firefox/default.nix index a23752b0..f9bbdfac 100644 --- a/modules/programs/firefox/default.nix +++ b/modules/programs/firefox/default.nix @@ -33,6 +33,7 @@ in }; platforms.darwin = { configPath = "Library/Application Support/Firefox"; + defaultsId = "org.mozilla.firefox.plist"; }; }) diff --git a/modules/programs/firefox/mkFirefoxModule.nix b/modules/programs/firefox/mkFirefoxModule.nix index df0a4c19..01b4ae1c 100644 --- a/modules/programs/firefox/mkFirefoxModule.nix +++ b/modules/programs/firefox/mkFirefoxModule.nix @@ -274,6 +274,12 @@ in default = wrappedPackageName; description = "Name of the wrapped browser package."; }; + darwinDefaultsId = mkOption rec { + type = types.nullOr types.str; + default = if platforms.darwin ? "defaultsId" then platforms.darwin.defaultsId else null; + example = if default != null then default else "com.developer.app"; + description = ''The id for the darwin defaults in order to set policies''; + }; darwinAppName = mkOption { internal = true; @@ -914,7 +920,15 @@ in Using '${moduleName}.vendorPath' has been deprecated and will be removed in the future. Native messaging hosts will function normally without specifying this path. ''; + targets.darwin.defaults = ( + mkIf (cfg.darwinDefaultsId != null && isDarwin) { + ${cfg.darwinDefaultsId} = { + EnterprisePoliciesEnabled = true; + } + // cfg.policies; + } + ); home.packages = lib.optional (cfg.finalPackage != null) cfg.finalPackage; home.file = mkMerge (