diff --git a/nix/home-manager.nix b/nix/home-manager.nix index 7f7bf8a5..496183ac 100644 --- a/nix/home-manager.nix +++ b/nix/home-manager.nix @@ -4,10 +4,12 @@ pkgs, ... }: -with lib; let +with lib; +let cfg = config.programs.hunk; - tomlFormat = pkgs.formats.toml {}; -in { + tomlFormat = pkgs.formats.toml { }; +in +{ options.programs.hunk = { enable = mkEnableOption "hunk, a terminal-first diff viewer"; @@ -20,7 +22,7 @@ in { settings = mkOption { type = tomlFormat.type; - default = {}; + default = { }; example = literalExpression '' { theme = "graphite"; @@ -40,15 +42,25 @@ in { default = false; description = "Whether to set hunk as the default git pager."; }; + + enableClaudeIntegration = mkOption { + type = types.bool; + default = false; + description = "Whether to link the hunk-review skill under ~/.claude/skills."; + }; }; config = mkIf cfg.enable { - home.packages = [cfg.package]; + home.packages = [ cfg.package ]; - xdg.configFile."hunk/config.toml" = mkIf (cfg.settings != {}) { + xdg.configFile."hunk/config.toml" = mkIf (cfg.settings != { }) { source = tomlFormat.generate "hunk-config.toml" cfg.settings; }; programs.git.settings.core.pager = mkIf cfg.enableGitIntegration "hunk pager"; + + home.file = mkIf cfg.enableClaudeIntegration { + ".claude/skills/hunk-review".source = "${cfg.package}/skills/hunk-review"; + }; }; }