{ config , lib , ... }: with lib; let cfg = config.my.programs.ssh; baseName = path: removeSuffix ".age" (baseNameOf path); in { options.my.programs.ssh = { enable = mkEnableOption "ssh"; includeSecrets = mkOption { default = [ ]; type = with types; listOf path; }; }; config = mkIf cfg.enable { age.secrets = listToAttrs (map (path: { name = baseName path; value = { file = path; owner = "1000"; }; }) cfg.includeSecrets); home-manager.users.moritz.programs.ssh = { enable = true; includes = map (path: "/run/agenix/" + baseName path) cfg.includeSecrets; }; }; }