diff --git a/modules/programs/sheldon.nix b/modules/programs/sheldon.nix new file mode 100644 index 00000000..cbd3767f --- /dev/null +++ b/modules/programs/sheldon.nix @@ -0,0 +1,34 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.programs.sheldon; + tomlFormat = pkgs.formats.toml {}; +in { + meta.maintainers = pkgs.sheldon.meta.maintainers; + + options.programs.sheldon = { + enable = mkEnableOption "sheldon"; + + package = mkOption { + type = types.package; + default = pkgs.sheldon; + defaultText = literalExpression "pkgs.sheldon"; + description = "The package to use for the sheldon binary."; + }; + + settings = mkOption { + inherit (tomlFormat) type; + default = { }; + }; + }; + + config = mkIf cfg.enable { + home.packages = [ cfg.packages ]; + + xdg.configFile."sheldon/plugins.toml" = mkIf (cfg.settings != { }) { + source = tomlFormat.generate "sheldon-config" cfg.settings; + }; + }; +}