{ pkgs, ... }: { programs.firefox = { enable = true; profiles = { default = { id = 0; name = "Main Profile"; isDefault = true; search = { force = true; default = "EnCours"; order = [ "EnCours" "DuckDuckGo" "Google" ]; 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 Options" = { urls = [{ template = "https://search.nixos.org/options"; params = [ { name = "type"; value = "options"; } { name = "query"; value = "{searchTerms}"; } ]; }]; icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; definedAliases = [ "@no" ]; }; "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" ]; }; "HomeManager Unofficial Options" = { urls = [{ template = "https://home-manager-options.extranix.com"; params = [{ name = "query"; value = "{searchTerms}"; }]; }]; icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; definedAliases = [ "@hm" ]; }; "Arch Wiki" = { urls = [{ template = "https://wiki.archlinux.org/index.php?search={searchTerms}"; }]; iconUpdateURL = "https://wiki.archlinux.org/favicon.ico"; definedAliases = [ "@aw" ]; }; "GeoGuessr Join" = { urls = [{ template = "https://www.geoguessr.com/join/{searchTerms}"; }]; definedAliases = [ "@ggj" ]; }; "EnCours" = { urls = [{ template = "https://search.encours.xyz/search?q={searchTerms}"; }]; definedAliases = [ "@enc" ]; }; "Google".metaData.alias = "@g"; # builtin engines only support specifying one additional alias }; }; # extensions = with pkgs.nur.repos.rycee.firefox-addons; [ # ublock-origin # bitwarden # multi-account-containers # ]; settings = { "browser.search.region" = "CA"; "browser.search.isUS" = false; }; }; }; }; }