dotfiles/home/modules/gui/apps/browsers/firefox/config/search/default.nix

55 lines
1.2 KiB
Nix
Raw Normal View History

2025-01-19 23:40:54 -06:00
{ flake, ... }:
let
2024-11-10 01:29:37 -06:00
configPath = ./config;
2025-01-08 19:06:14 -06:00
flakedPath = configPath + /flake;
2024-11-10 01:29:37 -06:00
2025-01-19 23:40:54 -06:00
regularSearchEngines =
let
files = builtins.attrNames (builtins.readDir configPath);
in
2024-11-09 16:44:23 -06:00
builtins.foldl' (
2025-01-19 23:40:54 -06:00
emptySet: searchEngine: emptySet // (import (configPath + "/${searchEngine}"))
) { } (builtins.filter (name: builtins.match ".*\\.nix$" name != null) files);
2024-11-10 01:29:37 -06:00
2025-01-19 23:40:54 -06:00
flakedSearchEngines =
let
files = builtins.attrNames (builtins.readDir flakedPath);
in
2024-11-10 01:29:37 -06:00
builtins.foldl' (
2024-11-09 16:44:23 -06:00
emptySet: searchEngine:
2025-01-19 23:40:54 -06:00
emptySet
// (import (flakedPath + "/${searchEngine}") {
inherit
flake
;
})
) { } (builtins.filter (name: builtins.match ".*\\.nix$" name != null) files);
2024-11-10 01:29:37 -06:00
aggregatedSearchEngines = regularSearchEngines // flakedSearchEngines;
2025-01-19 23:40:54 -06:00
in
{
2024-11-09 16:44:23 -06:00
search = {
force = true;
default = "Kagi";
engines = aggregatedSearchEngines;
2024-11-10 01:29:37 -06:00
order = [
"AlternativeTo"
"Core Radio"
"Hackage"
"Hoogle"
"Jellyfin"
"Kagi"
"Nix Home Manager"
"Nix Options"
"Nix Packages"
"Nix Wiki"
"PeerTube"
"Sci-Hub"
"Torrent Leech"
"Urban Dictionary"
"Wikipedia"
"YouTube"
];
2024-11-09 16:44:23 -06:00
};
}