{ 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 = "DuckDuckGo"; order = ["DuckDuckGo" "Google"]; force = true; engines = { "Nix Packages" = { urls = [ { template = "https://search.nixos.org/packages"; params = [ { name = "type"; value = "packages"; } { name = "query"; value = "{searchTerms}"; } ]; } ]; }; }; }; # Extensions extensions = 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; }; }