A comprehensive development environment configuration using Nix Darwin, Go-based configuration management, and containerized development tools.
- macOS (Apple Silicon recommended)
- Nix package manager
- Git
- Docker (for containerized Neovim)
-
Clone the repository:
git clone <repository-url> cd dotfiles
-
Set up Nix Darwin system (recommended):
cd asagi/ task init # First-time setup task apply # Apply configuration
dotfiles/
├── asagi/ # Nix Darwin configuration for macOS
├── azuma/ # NixOS configuration for Linux
└── akatsuki/ # Docker container environments
Nix Darwin configuration for macOS
- Target: Apple Silicon Macs (aarch64-darwin)
- Features: Declarative system configuration, package management, modular shell setup
- Status: ✅ Active
Key Components:
- Nix Darwin system configuration
- Home Manager integration
- Modular Zsh configuration with automatic loading
- SKK Japanese input support
- Development tools: Claude Code, .NET 10 SDK, Rust, Go Task, mise
Quick Commands:
cd asagi/
task apply # Apply changes (requires sudo)
task build # Test build without applying
task validate # Comprehensive validationNixOS configuration for Linux systems
- Target: x86_64-linux
- Features: Complete Linux desktop environment with GNOME, development tools
- Status: ✅ Active
Key Components:
- NixOS system configuration with flakes
- GNOME Desktop Environment
- Fcitx5 Japanese input (SKK)
- Docker support
- Development tools: WezTerm, Neovim, Claude Code, Git
Quick Commands:
cd azuma/
sudo nixos-rebuild switch --flake .#myNixOS
nix flake updateDocker container environments for development
- Base: Ubuntu 24.04
- Features: Pre-configured development containers with Neovim
- Status: ✅ Active
Available Containers:
akatsuki-default-arm- ARM architectureakatsuki-default-amd- AMD/Intel architectureakatsuki-python- Python development environment
Quick Commands:
cd akatsuki/
task build:default:arm # Build ARM container
task run:default:arm # Run ARM container
task build:python # Build Python containerSystem Packages (via Asagi):
- Claude Code - AI-powered development assistant
- .NET 10 SDK - Cross-platform development
- Git & GitHub CLI - Version control
- Go Task - Task automation
- Rust toolchain - Systems programming
- Hyperfine - Command-line benchmarking
- Tree - Directory visualization
- mise - Polyglot runtime manager
Homebrew Casks:
- WezTerm - GPU-accelerated terminal
- AquaSKK - Japanese input method
- Arc - Modern web browser
- Docker - Container platform
- Steam - Gaming platform
- Zoom - Video conferencing
Modular Zsh Setup:
- Automatic loading of all
.zshfiles - Organized by purpose (basic/, command/)
- Oh My Zsh integration with kennethreitz theme
- Enhanced with autosuggestions and syntax highlighting
Directory Structure:
configs/zsh/
├── basic/
│ ├── alias.zsh # System aliases
│ ├── editor.zsh # Editor configuration
│ ├── option.zsh # Shell options
│ └── path.zsh # PATH modifications
└── command/
├── docker/ # Docker-specific settings
└── git/ # Git aliases and functions
-
macOS System Updates (Asagi):
cd asagi/ task update # Update dependencies task apply # Apply changes
-
Linux System Updates (Azuma):
cd azuma/ sudo nixos-rebuild switch --flake .#myNixOS
-
Container Development (Akatsuki):
cd akatsuki/ task build:default:arm task run:default:arm /path/to/workspace
Edit asagi/home.nix:
home.packages = with pkgs; [
# existing packages...
your-new-package
];Create new .zsh files in asagi/configs/zsh/:
- Files are automatically sourced
- Organize by purpose (basic/ for core, command/ for tool-specific)
Declarative Systems:
- Asagi (macOS): Nix Darwin + Home Manager
- Azuma (Linux): NixOS with flakes
Both use modular imports to organize configurations by tool, making them maintainable and reusable.
This repository supports multiple platforms:
- macOS: Native system via Nix Darwin (aarch64-darwin)
- Linux: Native system via NixOS (x86_64-linux)
- Containers: Portable environments via Docker (multi-arch)
- Nix-based systems manage both system and user-space configuration
- Modular imports organize configuration by tool
- Automatic loading reduces manual configuration management
- Flakes ensure reproducible builds
- ✅ Active: Asagi - macOS system configuration
- ✅ Active: Azuma - Linux system configuration
- ✅ Active: Akatsuki - Docker container environments
- Sudo permissions: Some commands (Nix Darwin/NixOS rebuilds) require manual execution
- Nix not found: Install Nix package manager first
- Container issues: Ensure Docker is running
- Check existing documentation in each project directory
- Review CLAUDE.md for Claude Code specific guidance
- Examine Taskfile.yml for available commands
This repository is open source and available for use. Note that configurations may change without notice - use at your own risk.