This commit makes two significant changes to the Emacs configuration:
1. Refactors emacs.nix to use proper NixOS module structure:
- Converts from simple configuration to a module with options/config
- Adds `tb.emacs.extraSnippetDirs` option to allow per-machine snippet
directories (defaults to ~/.emacs.d/snippets/)
- Moves yasnippet configuration from custom.el to nix-generated elisp,
enabling dynamic snippet directory configuration via Nix
2. Adds a comprehensive collection of yasnippet snippets for multiple modes:
- C++ mode: 50 snippets for common patterns (class, namespace, operators,
copy/move semantics, debug helpers, documentation, threading primitives)
- CC mode (shared C/C++): for, switch, main, include guards, etc.
- CMake mode: if/else, foreach, function, macro, project boilerplate
- LaTeX mode: document structure, beamer frames, figures, lists
- Perl mode: package boilerplate, shebang
- Python/Shell/Nix/Protobuf/Java/CSS/Dockerfile modes: horizontal rules
and common patterns
- Text mode: modeline snippets for locale settings
The snippets use yasnippet's inheritance system via .yas-parents files,
so c++-mode inherits from cc-mode and text-mode, reducing duplication.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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>