{ config, pkgs, lib, ... }: with lib; let pass = config.dyamon.pass; in { options = { dyamon.pass = { enable = mkEnableOption "Enable password store."; backend = mkOption { type = types.enum [ "pass" "keepass" ]; default = "pass"; description = "Password store software."; }; store = mkOption { type = types.path; default = "${config.home.homeDirectory}/.password-store"; description = "Path to the password store."; }; }; }; config = mkMerge [ # Pass configuration (mkIf (pass.enable && pass.backend == "pass") { programs.password-store = { enable = true; package = pkgs.pass.withExtensions (exts: [ exts.pass-otp ]); settings = { PASSWORD_STORE_DIR = pass.store; }; }; }) # KeepassXC configuration (mkIf (pass.enable && pass.backend == "keepass") { home.packages = with pkgs; [ keepassxc ]; }) ]; }