{ config, pkgs, ... }: {
  programs.firefox = {
    enable = true;

    profiles.default = {
      isDefault = true;
      name = "default";
      settings = {
        "extension.pocket.enabled" = "false";
        "toolkit.telemetry.pioneer-new-studies-availble" = "false";
        "datareporting.healthreport.uploadEnabled" = "false";
        "datareporting.healthreport.infoURL" = "null";
        "toolkit.telemetry.server" = "null";
        "browser.newtabpage.activity-stream.feeds.telemetry" = "false";
        "browser.newtabpage.activity-stream.telemetry" = "false";
        "browser.ping-centre.telemetry" = "false";
        "toolkit.telemetry.enabled" = "false";
        "toolkit.telemetry.firstShutdownPing.enabled" = "false";
        "toolkit.telemetry.hybridContent.enabled" = "false";
        "toolkit.telemetry.newProfilePing.enabled" = "false";
        "toolkit.telemetry.shutdownPingSender.enabled" = "false";
        "toolkit.telemetry.updatePing.enabled" = "false";
        "toolkit.telemetry.reportingpolicy.firstRun" = "false";
        "toolkit.telemetry.unified" = "false";
        "toolkit.telemetry.archive.enabled" = "false";
        "devtools.onboarding.telemetry.logged" = "false";
        "toolkit.telemetry.bhrPing.enabled" = "false";
        "datareporting.policy.dataSubmissionEnabled" = "false";
        "datareporting.sessions.current.clean" = "true";
        "browser.startup.homepage" = "https://dir.sysctl.io";
        "browser.search.region" = "US";
        "browser.search.isUS" = false;
        "distribution.searchplugins.defaultLocale" = "en-US";
        "general.useragent.locale" = "en-US";
        "browser.bookmarks.showMobileBookmarks" = "false";
        "browser.newtabpage.enabled" = "false";
        "services.sync.prefs.sync.browser.newtabpage.enabled" = "false";
      };

      # https://nur.nix-community.org/repos/rycee/
      extensions =  with pkgs.nur.repos.rycee.firefox-addons; [
        privacy-badger
        decentraleyes
        darkreader
        ublock-origin
        privacy-redirect
        link-cleaner
        demodal
      ];

      search.default = "DuckDuckGo";
      search.force = true;
      search.order = [ "DuckDuckGo" ];
      search.engines = {
        "Nix Packages" = {
          urls = [{
            template = "https://search.nixos.org/packages";
            params = [
              { name = "type"; value = "packages"; }
              { name = "query"; value = "{searchTerms}"; }
            ];
          }];

          icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
          definedAliases = [ "@np" ];
        };

        "NixOS Wiki" = {
          urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }];
          iconUpdateURL = "https://nixos.wiki/favicon.png";
          updateInterval = 24 * 60 * 60 * 1000; # every day
          definedAliases = [ "@nw" ];
        };
      };
    };
  };
}