Skip to content

rewse/dotfiles

Repository files navigation

Dotfiles

Personal dotfiles management system using chezmoi. Centrally manage shell configurations, editor settings, Git configurations, and more across multiple machines (macOS and Linux).

Features

  • Cross-platform support: Compatible with both macOS and Linux
  • Template-based: Manage machine-specific configurations with conditional branching
  • Secure secrets management: Safely manage API keys and credentials through 1Password integration

Setup

Installation on a New Machine

macOS (Homebrew)

# Install chezmoi
brew install chezmoi

# Initialize and apply dotfiles
chezmoi init --apply <your-github-username>

macOS (without Homebrew) or Linux

# Install chezmoi and initialize/apply dotfiles
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply <your-github-username>

Or, install chezmoi only:

sh -c "$(curl -fsLS get.chezmoi.io)"

Install to a specific directory (e.g., /usr/local/bin):

sh -c "$(curl -fsLS get.chezmoi.io)" -- -b /usr/local/bin

If You Already Have chezmoi

chezmoi init <your-github-username>
chezmoi apply

Usage

Daily Operations

# Add a file
chezmoi add ~/.zshrc

# Edit a file
chezmoi edit ~/.zshrc

# Check changes
chezmoi diff | cat

# Apply changes
chezmoi apply

# Dry run
chezmoi apply --dry-run --verbose | cat

Sync with Remote

# Fetch and apply latest changes
chezmoi update

Structure

Directory Structure

.
├── .chezmoitemplates/            # Shared templates (can be included from other templates)
├── .kiro/                        # Kiro-related configurations
│   └── steering/                 # Guidelines for AI assistant
├── dot_config/                   # XDG Base Directory compliant configurations
│   └── chezmoi/                  # chezmoi configuration and examples
│       └── chezmoi.toml          # Configuration file
├── dot_kiro/                     # Kiro CLI settings and steering rules
├── dot_vim/                      # Vim configurations
├── dot_*                         # Other dotfiles (zshrc, gitconfig, etc.)
├── private_dot_ssh/              # SSH keys and config (private attribute 0600)
├── private_*                     # Other private files
└── *.tmpl                        # Template files (processed by chezmoi)

Requirements

About

Personal dotfile management system using chezmoi

Topics

Resources

License

Security policy

Stars

Watchers

Forks