Files
dart/modules/librewolf.nix
2026-02-16 15:45:20 -07:00

110 lines
3.1 KiB
Nix

{ pkgs, ... }:
let
policiesJson = builtins.toJSON {
policies = {
DisableTelemetry = true;
DisableFirefoxStudies = true;
DisablePocket = true;
DisableFirefoxAccounts = true;
FirefoxHome = {
Search = true;
TopSites = true;
SponsoredTopSites = false;
Highlights = false;
Pocket = false;
SponsoredPocket = false;
};
SanitizeOnShutdown = {
Cache = true;
Cookies = false;
History = false;
Sessions = true;
SiteSettings = false;
OfflineApps = true;
};
ExtensionSettings = {
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi";
installation_mode = "force_installed";
};
"floccus@handmadeideas.org" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/floccus/latest.xpi";
installation_mode = "force_installed";
};
"uBlock0@raymondhill.net" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
installation_mode = "force_installed";
};
"{15cb5e64-94bd-41aa-91cf-751bb1a84972}" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/catppuccin-macchiato-lavender2/latest.xpi";
installation_mode = "force_installed";
};
};
Preferences = {
"browser.startup.homepage" = {
Value = "about:home";
Status = "locked";
};
"extensions.autoDisableScopes" = {
Value = 0;
Status = "locked";
};
"browser.toolbars.bookmarks.visibility" = {
Value = "always";
Status = "locked";
};
"network.cookie.cookieBehavior" = {
Value = 1;
Status = "locked";
};
"privacy.clearOnShutdown.cookies" = {
Value = false;
Status = "locked";
};
"privacy.clearOnShutdown.history" = {
Value = false;
Status = "locked";
};
"sidebar.revamp" = {
Value = true;
Status = "locked";
};
"sidebar.verticalTabs" = {
Value = true;
Status = "locked";
};
"sidebar.main.tools" = {
Value = "bookmarks,history,tabs";
Status = "locked";
};
"sidebar.visibility" = {
Value = "always";
Status = "locked";
};
"extensions.activeThemeID" = {
Value = "{1d573fb2-437c-4440-9b7b-b72a3eaec105}";
Status = "locked";
};
};
};
};
policiesFile = pkgs.writeText "librewolf-policies.json" policiesJson;
in
{
system.activationScripts.postActivation.text = ''
DIST_DIR="/Applications/LibreWolf.app/Contents/Resources/distribution"
if [ -d "/Applications/LibreWolf.app" ]; then
mkdir -p "$DIST_DIR"
cp ${policiesFile} "$DIST_DIR/policies.json"
chmod 644 "$DIST_DIR/policies.json"
echo "LibreWolf policies applied."
fi
'';
}