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