如何在 NixOs 中使用 Firefox 策略/如何将配置文件添加到 Nix 包?

如何在 NixOs 中使用 Firefox 策略/如何将配置文件添加到 Nix 包?

我需要在 NixOS 中部署已配置并带有扩展的 Firefox。我想以声明方式(在configuration.nix)中执行此操作,并且我不想使用家庭管理器。

Firefox 在中查找配置/nix/store/<hash>-firefox-unwrapped-74.0.1/lib/firefox/distribution/policies.json(用 验证strace)。

因此问题是:如何将此文件添加到 Firefox nixpkgs 包中? (额外问题:如何从我的 Github Repo 获取文件?)

我对 NixOs 还很陌生。我查阅了有关覆盖、覆盖、包装等的手册,但我无法成功。我尝试了firefoxfirefox-binfirefox-unwrapped

答案1

自 NixOS 21.05 (犯罪)现在可以轻松创建自定义 Firefox 包,并设置一些策略值,例如,

pkgs.wrapFirefox pkgs.firefox-unwrapped {
  extraPolicies = {
    DisableFirefoxStudies = true;
    DisablePocket = true;
  };
}

pkgsNixpkgs 软件包集在哪里。

答案2

我看了一眼 firefox Nix 表达式,没有看到提供policies.json.

如果你修改包,以便可以提供策略作为派生的输入,它会起作用,但用户将被迫承担编译 Firefox 的负担;因为该文件将是构建输入。

如果 Firefox 提供了一种方法来指定在运行时在何处查找策略文件,那么这可能是一个理想的解决方案。否则,您可以向 Firefox 软件包添加补丁,该补丁修改源代码以查找策略文件,例如/etc/firefox/policies.json...。完成此更改后,您可以使用environmentNixOS 模块来/etc/nixos/configuration.nix创建策略。像这样的东西:

environment.etc."firefox/policies".text = "INSERT POLICY HERE";

相关内容