1
0
Files
nix-shared/home/claude/config.nix

12 lines
564 B
Nix
Raw Normal View History

Add homeManagerModules.claude for Claude Code configuration management This commit introduces a new home-manager module that provides declarative configuration management for Claude Code, Anthropic's official CLI tool. The module follows the established pattern used by other home-manager modules in this flake (default, private, macos, develop) and enables users to deploy custom Claude Code slash commands and configuration files to ~/.claude/. Changes included: 1. Created home/claude/config.nix module: - Defines a new home-manager module for Claude Code configuration - Uses home.file to deploy command files from the Nix store to ~/.claude/ - Currently deploys two custom slash commands to ~/.claude/commands/ 2. Added two custom slash commands: - commit.md: Automates git commit creation by reading staged diffs and generating comprehensive commit messages - go-plan.md: Writes detailed implementation plans to PLAN.md before starting work, supporting the planning workflow 3. Registered homeManagerModules.claude in flake.nix: - Added as a new, independent module group that can be imported separately - Positioned after the develop module for logical organization - Can be enabled by importing inputs.nix-shared.homeManagerModules.claude 4. Enhanced flake.nix documentation: - Added descriptive comments for all nixosModules and homeManagerModules - Clarifies the purpose of each module group (e.g., "Linux specific system configuration", "Add private homelab and cloud host aliases") - Improves maintainability and makes the flake structure self-documenting The module structure supports easy extension - additional slash commands or configuration files can be added by placing them in home/claude/config/ and adding corresponding home.file entries in config.nix. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-13 23:08:01 -08:00
{ lib, ... }:
{
# Copy Claude Code configuration files to ~/.claude/
# Using activation script instead of home.file to copy (not symlink) files
home.activation.copyClaudeCommands = lib.hm.dag.entryAfter ["writeBoundary"] ''
$DRY_RUN_CMD mkdir -p $VERBOSE_ARG $HOME/.claude/commands
$DRY_RUN_CMD cp $VERBOSE_ARG ${./config/commands/commit.md} $HOME/.claude/commands/commit.md
$DRY_RUN_CMD cp $VERBOSE_ARG ${./config/commands/go-plan.md} $HOME/.claude/commands/go-plan.md
$DRY_RUN_CMD chmod $VERBOSE_ARG 644 $HOME/.claude/commands/*.md
'';
}