{ user, home }: { 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.restore_default_bookmarks" = false; "browser.bookmarks.showMobileBookmarks" = true; "browser.download.useDownloadDir" = false; "browser.newtabpage.activity-stream.feeds.system.topstories" = false; "browser.toolbars.bookmarks.visibility" = "never"; "browser.sessionstore.restore_on_demand" = true; "browser.sessionstore.restore_pinned_tabs_on_demand" = false; "browser.translations.automaticallyPopup" = false; "browser.uiCustomization.state" = builtins.readFile ( (pkgs.formats.json { }).generate "firefox-browser-uiCustomization-state.json" { "placements" = { "widget-overflow-fixed-list" = [ ]; "unified-extensions-area" = [ "_73a6fe31-595d-460b-a920-fcc0f8843232_-browser-action" "sponsorblocker_ajay_app-browser-action" "_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action" "_aecec67f-0d10-4fa7-b7c7-609a2db280cf_-browser-action" "languagetool-webextension_languagetool_org-browser-action" "_a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7_-browser-action" ]; "nav-bar" = [ "sidebar-button" "alltabs-button" "firefox-view-button" "back-button" "forward-button" "stop-reload-button" "vertical-spacer" "urlbar-container" "customizableui-special-spring2" "fxa-toolbar-menu-button" "ublock0_raymondhill_net-browser-action" "addon_darkreader_org-browser-action" "wayback_machine_mozilla_org-browser-action" "unified-extensions-button" "downloads-button" "privatebrowsing-button" ]; "toolbar-menubar" = [ "menubar-items" ]; "TabsToolbar" = [ ]; "vertical-tabs" = [ "tabbrowser-tabs" ]; "PersonalToolbar" = [ "personal-bookmarks" ]; }; "seen" = [ "wayback_machine_mozilla_org-browser-action" "addon_darkreader_org-browser-action" "ublock0_raymondhill_net-browser-action" "_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action" "_aecec67f-0d10-4fa7-b7c7-609a2db280cf_-browser-action" "languagetool-webextension_languagetool_org-browser-action" "sponsorblocker_ajay_app-browser-action" "_73a6fe31-595d-460b-a920-fcc0f8843232_-browser-action" "developer-button" "_a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7_-browser-action" "screenshot-button" ]; "dirtyAreaCache" = [ "unified-extensions-area" "nav-bar" "toolbar-menubar" "TabsToolbar" "vertical-tabs" "PersonalToolbar" ]; "currentVersion" = 22; "newElementCount" = 0; } ); "extensions.autoDisableScopes" = 0; "sidebar.main.tools" = "history,bookmarks"; "sidebar.revamp" = true; "sidebar.verticalTabs" = true; }; }; profiles.default = { extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [ languagetool bitwarden darkreader noscript sponsorblock ublock-origin violentmonkey wayback-machine user-agent-string-switcher ]; 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; }; }