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>
91 lines
2.1 KiB
Nix
91 lines
2.1 KiB
Nix
{
|
|
description = "Timo's Shared Nix Modules";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
};
|
|
|
|
outputs = { self, nixpkgs, ... }: {
|
|
# Set up formatter.
|
|
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixpkgs-fmt;
|
|
|
|
# Global all-hosts configuration
|
|
nixosModules.default = { ... }: {
|
|
imports = [
|
|
./system/default/editor.nix
|
|
./system/default/nix.nix
|
|
./system/default/packages.nix
|
|
./system/default/prompt.nix
|
|
./system/default/ssh-authorized-keys.nix
|
|
];
|
|
};
|
|
|
|
# Linux specific system configuration
|
|
nixosModules.linux = { ... }: {
|
|
imports = [
|
|
./system/linux/i18n.nix
|
|
./system/linux/openssh.nix
|
|
./system/linux/system.nix
|
|
./system/linux/user-tb.nix
|
|
];
|
|
};
|
|
|
|
# MacOS specific system configuration
|
|
nixosModules.macos = { ... }: {
|
|
imports = [
|
|
./system/macos/environment.nix
|
|
./system/macos/fonts.nix
|
|
./system/macos/hotkeys.nix
|
|
./system/macos/nix.nix
|
|
./system/macos/system.nix
|
|
./system/macos/yabai.nix
|
|
];
|
|
};
|
|
|
|
# Tools on all development machines
|
|
nixosModules.develop = { ... }: {
|
|
imports = [
|
|
./system/develop/packages.nix
|
|
];
|
|
};
|
|
|
|
# Home Manager Modules
|
|
homeManagerModules.default = { ... }: {
|
|
imports = [
|
|
./home/default/bash.nix
|
|
./home/default/basic.nix
|
|
./home/default/direnv.nix
|
|
./home/default/git.nix
|
|
];
|
|
};
|
|
|
|
# Add private homelab and cloud host aliases
|
|
homeManagerModules.private = { ... }: {
|
|
imports = [
|
|
./home/private/ssh-hosts.nix
|
|
];
|
|
};
|
|
|
|
# MacOS specific home configuration
|
|
homeManagerModules.macos = { ... }: {
|
|
imports = [
|
|
./home/macos/home.nix
|
|
];
|
|
};
|
|
|
|
# Emacs Configuration
|
|
homeManagerModules.develop = { ... }: {
|
|
imports = [
|
|
./home/develop/emacs.nix
|
|
];
|
|
};
|
|
|
|
# Claude Code configuration
|
|
homeManagerModules.claude = { ... }: {
|
|
imports = [
|
|
./home/claude/config.nix
|
|
];
|
|
};
|
|
};
|
|
}
|