{ user ? throw "user argument is required", home ? throw "home argument is required", }: { lib, pkgs, ... }: { environment.persistence = { "/persist"."${home}/.mozilla" = { }; "/cache"."${home}/.cache/mozilla" = { }; }; home-manager.users.${user} = { programs.firefox = { enable = true; policies = { DisableTelemetry = true; DisableFirefoxStudies = true; DontCheckDefaultBrowser = true; DisablePocket = true; DefaultDownloadDirectory = "$HOME/Downloads"; OfferToSaveLogins = false; AutofillAddressEnabled = false; AutofillCreditCardEnabled = false; Preferences = { "browser.aboutConfig.showWarning" = false; "browser.contentblocking.category" = "strict"; "browser.download.useDownloadDir" = false; "browser.newtabpage.activity-stream.feeds.section.topstories" = false; "browser.newtabpage.activity-stream.showSponsored" = false; "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; "browser.toolbars.bookmarks.visibility" = true; "browser.sessionstore.restore_on_demand" = true; "browser.sessionstore.restore_pinned_tabs_on_demand" = false; "browser.translations.automaticallyPopup" = false; }; }; profiles.default = { settings."extensions.autoDisableScopes" = 0; extensions = with pkgs.nur.repos.rycee.firefox-addons; [ languagetool bitwarden darkreader noscript sponsorblock ublock-origin violentmonkey wayback-machine ]; search = { default = "DuckDuckGo"; privateDefault = "DuckDuckGo"; order = [ "DuckDuckGo" "Google" "Wikipedia (en)" "Nix Packages" "Nix Options" "Home Manager Options" ]; force = true; engines = { "Google".metaData.alias = "@g"; "DuckDuckGo".metaData.alias = "@d"; "Wikipedia (en)".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 pkgs.firefox; wayland.windowManager.hyprland.settings.bind = [ "$mod, b, exec, ${lib.meta.getExe pkgs.firefox}" ]; }; }