# taken from the NixOS Firefox module: https://github.com/NixOS/nixpkgs/blob/7c9cc5a6e5d38010801741ac830a3f8fd667a7a0/nixos/modules/programs/firefox.nix { config, lib, pkgs, # options autoConfig ? "", extraNativeMessagingHosts ? [], wrapperConfig ? {}, extraPolicies ? {}, base_package ? pkgs.firefox, }: let pkg = base_package.override (old: { inherit extraPolicies; extraPrefs = autoConfig; extraNativeMessagingHosts = old.extraNativeMessagingHosts or [] ++ extraNativeMessagingHosts; cfg = let # copy-pasted from the wrapper; TODO: figure out fix applicationName = base_package.binaryName or (lib.getName base_package); oldCfg = old.cfg or {}; nixpkgsConfig = pkgs.config.${applicationName} or {}; optionConfig = wrapperConfig; in oldCfg // nixpkgsConfig // optionConfig; }); in pkg