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>
This commit is contained in:
11
home/claude/config.nix
Normal file
11
home/claude/config.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ 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
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user