Ich muss meinen Firefox konfiguriert und mit Erweiterungen in NixOS bereitstellen. Ich möchte das deklarativ (in ) tun configuration.nix
und keinen Home-Manager verwenden.
Über das Benutzerprofil:
- Konfiguration möglich überVoreinstellungsdateien
- Das Laden von Erweiterungen istnicht möglich,Der Support wurde mit Firefox 74 beendet
Über das Installationsverzeichnis:
- Konfiguration + Erweiterungen steuerbar überRichtlinien.json
Firefox sucht nach der Konfiguration in /nix/store/<hash>-firefox-unwrapped-74.0.1/lib/firefox/distribution/policies.json
(überprüft mit strace
).
Daher die Frage: Wie füge ich diese Datei zum Firefox-Paket nixpkgs hinzu? (Bonusfrage: Wie bekomme ich eine Datei aus meinem Github-Repo dorthin?)
Ich bin ziemlich neu bei NixOs. Ich habe die Handbücher zu Overriding, Overlays, Wrapping und mehr durchgesehen, aber es hat nicht geklappt. Ich habe es sowohl mit firefox
als firefox-bin
auch versucht firefox-unwrapped
.
Antwort1
Seit NixOS 21.05 (begehen) ist es jetzt einfach, ein benutzerdefiniertes Firefox-Paket mit einigen festgelegten Richtlinienwerten zu erstellen, beispielsweise mit
pkgs.wrapFirefox pkgs.firefox-unwrapped {
extraPolicies = {
DisableFirefoxStudies = true;
DisablePocket = true;
};
}
wo pkgs
ist der Nixpkgs-Paketsatz?
Antwort2
Ich habe einen Blick auf die Nix-Ausdrücke von Firefox geworfen und konnte keine Möglichkeit finden, ein bereitzustellen policies.json
.
Wenn Sie das Paket so ändern, dass Sie die Richtlinie als Eingabe für die Ableitung bereitstellen können, würde es funktionieren, aber dann müssten die Benutzer Firefox kompilieren, weil die Datei eine Build-Eingabe wäre.
Wenn Firefox eine Möglichkeit bietet, zur Laufzeit anzugeben, wo die Richtliniendatei zu finden ist, könnte das eine ideale Lösung sein. Andernfalls können Sie dem Firefox-Paket einen Patch hinzufügen, der den Quellcode so ändert, dass die Richtliniendatei beispielsweise an folgender Stelle gesucht wird: ... /etc/firefox/policies.json
Mit dieser Änderung können Sie das environment
NixOS-Modul verwenden /etc/nixos/configuration.nix
, um die Richtlinien zu erstellen. Etwa so:
environment.etc."firefox/policies".text = "INSERT POLICY HERE";