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

    profiles.default = {
      isDefault = true;
      name = "default";

      # 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
        # Theming
        gruvbox-dark-theme
      ];

      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" ];
        };
      };
    };
  };
}