.hive/modules/home/firefox.nix

99 lines
2.4 KiB
Nix

{
config,
lib,
inputs,
pkgs,
...
}: let
cfg = config.hive.firefox;
in {
options.hive.firefox = {
enable = lib.mkEnableOption "Enable Firefox";
plasmaIntegration = lib.mkEnableOption "Enable Plasma Integration";
passFF = lib.mkEnableOption "Enable PassFF";
};
config = lib.mkIf cfg.enable {
programs.firefox = {
enable = true;
# Default profile
profiles.jonas = {
name = "Jonas";
id = 0;
isDefault = true;
# Search
search = {
default = "ddg";
order = ["ddg" "google"];
force = true;
engines = {
"Nix Packages" = {
urls = [
{
template = "https://search.nixos.org/packages";
params = [
{
name = "type";
value = "packages";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
};
"Noogle" = {
urls = [
{
template = "https://noogle.dev/q";
params = [
{
name = "term";
value = "{searchTerms}";
}
];
}
];
};
"cppreference" = {
urls = [
{
template = "https://en.cppreference.com/mwiki/index.php";
params = [
{
name = "title";
value = "Special%3ASearch";
}
{
name = "search";
value = "{searchTerms}";
}
{
name = "Go";
value = "go";
}
];
}
];
};
};
};
# Extensions
extensions.packages = with inputs.firefox-addons.packages."x86_64-linux"; ([
ublock-origin
violentmonkey
]
++ lib.optional cfg.plasmaIntegration plasma-integration
++ lib.optional cfg.passFF passff);
};
};
home.packages =
lib.optional cfg.passFF
pkgs.passff-host;
};
}