Files
nixos-config/modules/desktop/firefox.nix

134 lines
5.3 KiB
Nix
Raw Normal View History

2025-08-20 18:24:02 +03:00
{ inputs, pkgs, ... }: {
n.misc.defaults.firefox = [
"text/html"
"x-scheme-handler/http"
"x-scheme-handler/https"
"application/pdf"
];
hm = {
imports = [ inputs.arkenfox.hmModules.arkenfox ];
stylix.targets.firefox = {
enable = true;
profileNames = [ "default" ];
};
programs.firefox = {
enable = true;
# arkenfox.enable = true; # TODO: configure arkenfox
profiles.default = {
id = 0;
isDefault = true;
search = {
default = "ddg";
engines =
let
getIcon = url: sha256: pkgs.fetchurl { inherit url sha256; };
nixicon = getIcon "https://nixos.org/favicon.ico" "sha256-58CkYxFA9Baioz3+avCQocft/AW9sgOLTPV71gxKD2g=";
in {
# Github
"GitHub" = {
urls = [ { template = "https://github.com/search?q={searchTerms}"; } ];
icon = getIcon "https://github.githubassets.com/favicons/favicon-dark.svg" "sha256-qu/d9ftvsntplFuxw9RFL8BpI9b2g5b6xfeGw6Ekh6w=";
definedAliases = [ "@github" "@gh" ];
};
# Knihi.com
"Knihi.com" = {
urls = [ { template = "https://knihi.com/search.html#{searchTerms}"; } ];
icon = getIcon "https://knihi.com/img/logo.svg" "sha256-wTpuVFhstRE6HXSWvrom49Wl0NNEw7jB+3dQDcLEWFI=";
definedAliases = [ "@knihi" "@knihi.com" ];
};
# NixOS Packages
"NixOS Packages" = {
urls = [ { template = "https://search.nixos.org/packages?channel=unstable&query={searchTerms}"; } ];
icon = nixicon;
definedAliases = [ "@nixpkgs" "@np" "@pkg" ];
};
# NixOS Options
"NixOS Options" = {
urls = [ { template = "https://search.nixos.org/options?channel=unstable&query={searchTerms}"; } ];
icon = nixicon;
definedAliases = [ "@nixopts" "@no" "@opt" ];
};
# NixOS Wiki
"NixOS Wiki" = {
urls = [ { template = "https://nixos.wiki/index.php?search={searchTerms}"; } ];
icon = getIcon "https://nixos.wiki/favicon.png" "sha256-Sw3Sysk6x/xDTwz6q2/HWaCZtffapsAuMMFjYN0FhIk=";
definedAliases = [ "@nixoswiki" "@nw" ];
};
# Home Manager options
"Home Manager Options" = {
urls = [ { template = "https://home-manager-options.extranix.com/?query={searchTerms}"; } ];
icon = getIcon "https://nixos.wiki/favicon.png" "sha256-Sw3Sysk6x/xDTwz6q2/HWaCZtffapsAuMMFjYN0FhIk=";
definedAliases = [ "@hm" ];
};
# Noogle (nix-functions search)
"Noogle" = {
urls = [ { template = "https://noogle.dev/q?term={searchTerms}"; } ];
icon = getIcon "https://noogle.dev/favicon.png" "sha256-5VjB+MeP1c25DQivVzZe77NRjKPkrJdYAd07Zm0nNVM=";
definedAliases = [ "@noogle" "@f" "@l" "@func" ];
};
# Rutracker
"Rutracker" = {
urls = [ { template = "https://rutracker.org/forum/tracker.php?nm={searchTerms}"; } ];
icon = getIcon "https://rutracker.org/favicon.ico" "sha256-p6PGZMIvLUX38QL5LnHGDr0X1SfNes5JiRdh4WNj6Zg=";
definedAliases = [ "@rutracker" "@rutr" "@torrent" "@tr" ];
};
# Flibusta
"Flibusta" = {
urls = [ { template = "https://flibusta.is/booksearch?ask={searchTerms}"; } ];
icon = getIcon "https://flibusta.is/sites/default/files/bluebreeze_favicon.ico" "sha256-Ksq+eviBPAVULOXOPAxhJJ5jx9iQqIiQ4dak9twng+I=";
definedAliases = [ "@rutracker" "@rutr" "@torrent" "@tr" ];
};
# Wiktionary
"Wiktionary" = {
urls = [ { template = "https://en.wiktionary.org/w/index.php?title=Special:Search&search={searchTerms}"; } ];
icon = getIcon "https://en.wiktionary.org/static/favicon/piece.ico" "sha256-Mz5Z9nz+gPlNqo8SerFgQSAMN76557yWZp4rgbjkPv8=";
definedAliases = [ "@wiktionary" "@w" ];
};
# Verbum
"Verbum" = {
urls = [ { template = "https://verbum.by/?q={searchTerms}"; } ];
icon = getIcon "https://verbum.by/statics/favicon.png" "sha256-/P3zuoHbL5Rb7MYxPeehVCmfoB/V73edTvGrHTA8hJ4=";
definedAliases = [ "@verbum" "@v" ];
};
# Sloŭnik.org
"Slounik.org" = {
urls = [ { template = "https://slounik.org/search?dict=&search={searchTerms}"; } ];
icon = getIcon "https://slounik.org/icon.svg" "sha256-jDvQ0iNMZ8pFp6+uvzTBuEOuVstZP2t1+hzDDx7oCAk=";
definedAliases = [ "@slounik" "@sl" ];
};
# Youtube
"Youtube" = {
urls = [ { template = "https://www.youtube.com/results?search_query={searchTerms}"; } ];
icon = getIcon "https://www.youtube.com/s/desktop/280a3f09/img/favicon.ico" "sha256-i7HQ+kOhdDbVndVG9vdMdtxEc13vdSLCLYAxFm24kR0=";
definedAliases = [ "@youtube" "@yt" "@y" ];
};
# Disable crap
"bing".metaData.hidden = true;
"google".metaData.hidden = true;
};
};
};
};
};
imp.home.dirs = [ ".mozilla" ];
}