refacor: firefox search engine settings
parent
33df89b381
commit
298aa410eb
|
@ -29,19 +29,36 @@ in
|
|||
);
|
||||
};
|
||||
};
|
||||
setSearchEngines = mkEnableOption "firefox search engines";
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.firefox;
|
||||
example = pkgs.firefox-esr;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home-manager.users.moritz.programs.firefox = {
|
||||
enable = true;
|
||||
policies = mkIf cfg.setSearchEngines {
|
||||
SearchEngines = {
|
||||
Default = "Kagi";
|
||||
Remove = [ "Google" "Amazon.de" "Bing" ];
|
||||
policies =
|
||||
let
|
||||
removeExtensions = [ "Google" "Amazon.de" "Bing" "Amazon" "Wikipedia (en)" "Wikipedia (de)" ];
|
||||
convertName = name:
|
||||
let
|
||||
lower = toLower name;
|
||||
escaped = replaceStrings [ "." ] [ "dot" ] lower;
|
||||
sanitized = head (splitString " " escaped);
|
||||
in
|
||||
"${sanitized}@search.mozilla.org";
|
||||
in
|
||||
{
|
||||
SearchEngines = mkIf (hasInfix "esr" cfg.package) {
|
||||
Default = "Kagi";
|
||||
Remove = removeExtensions;
|
||||
};
|
||||
ExtensionSettings = genAttrs
|
||||
(map convertName removeExtensions)
|
||||
(_: { installation_mode = "blocked"; });
|
||||
};
|
||||
};
|
||||
package = if cfg.setSearchEngines then pkgs.firefox-esr else pkgs.firefox;
|
||||
profiles."default" = {
|
||||
extraConfig = mkIf cfg.arkenfox.enable ''
|
||||
// Arkenfox user.js
|
||||
|
|
Loading…
Reference in New Issue