Files
nix/hosts/common/configs/user/gui/firefox/default.nix
2025-05-26 11:47:21 +01:00

131 lines
3.6 KiB
Nix

{
user ? throw "user argument is required",
home ? throw "home argument is required",
}:
{
config,
lib,
pkgs,
...
}:
let
hmConfig = config.home-manager.users.${user};
in
{
environment.persistence = {
"/persist/state"."${home}/.mozilla" = { };
"/persist/cache"."${home}/.cache/mozilla" = { };
};
home-manager.users.${user} = {
programs.firefox = {
enable = true;
policies = {
AutofillAddressEnabled = false;
AutofillCreditCardEnabled = false;
DefaultDownloadDirectory = "${home}/Downloads";
DisableFirefoxStudies = true;
DisablePocket = true;
DisableSetDesktopBackground = true;
DisableTelemetry = true;
DontCheckDefaultBrowser = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
EmailTracking = true;
};
FirefoxHome = {
"Locked" = true;
"Search" = true;
"TopSites" = true;
"SponsoredTopSites" = false;
"Highlights" = false;
"Pocket" = false;
"SponsoredPocket" = false;
"Snippets" = false;
};
NoDefaultBookmarks = true;
OfferToSaveLogins = false;
OverrideFirstRunPage = "";
PasswordManagerEnabled = false;
Preferences =
lib.attrsets.mapAttrs
(key: value: {
Value = value;
Status = "locked";
})
{
"browser.aboutConfig.showWarning" = false;
"browser.bookmarks.addedImportButton" = true;
"browser.bookmarks.showMobileBookmarks" = true;
"browser.download.useDownloadDir" = false;
"browser.toolbars.bookmarks.visibility" = "always";
"browser.sessionstore.restore_on_demand" = true;
"browser.sessionstore.restore_pinned_tabs_on_demand" = false;
"browser.translations.automaticallyPopup" = false;
"extensions.autoDisableScopes" = 0;
};
};
profiles.default = {
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
languagetool
bitwarden
darkreader
noscript
sponsorblock
ublock-origin
violentmonkey
wayback-machine
fakespot-fake-reviews-amazon
];
search = {
default = "ddg";
privateDefault = "ddg";
order = [
"ddg"
"google"
"wikipedia"
"nix"
];
force = true;
engines = {
"google".metaData.alias = "@g";
"ddg".metaData.alias = "@d";
"wikipedia".metaData.alias = "@w";
"nix" = {
urls = [
{
template = "https://mynixos.com/search";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@n" ];
};
};
};
};
};
xdg.mimeApps.defaultApplications = lib.attrsets.genAttrs [
"text/html"
"x-scheme-handler/http"
"x-scheme-handler/https"
"x-scheme-handler/about"
"x-scheme-handler/unknown"
] (_: "firefox.desktop");
home.sessionVariables.DEFAULT_BROWSER = lib.meta.getExe hmConfig.programs.firefox.finalPackage;
};
}