This repository contains my personal dotfiles managed with chezmoi.
- Features
- Quick Start
- Configuration
- Local Customizations
- Updating
- Uninstalling
- Troubleshooting
- Contributing
- Cross-platform support (macOS/Linux)
- Modular configuration
- Secure handling of sensitive data
- Automatic dependency installation
- Easy updates and maintenance
sh -c "$(curl -fsLS get.chezmoi.io)" -- -b $HOME/.local/bin init --apply mtxr/dotfiles
This will:
- Install chezmoi if not already installed
- Initialize the dotfiles repository
- Apply the configuration to your system
chezmoi init --apply mtxr/dotfiles
chezmoi update
The installer will automatically:
- Install Zsh if not already present
- Set Zsh as your default shell
- Apply Zsh configuration from the dotfiles
Note: The shell change will take effect in new terminal sessions. After installation, please open a new terminal to start using Zsh.
-
Clone this repository:
chezmoi init --apply mtxr/dotfiles
-
Follow the interactive prompts to configure your system
Edit ~/.local/share/chezmoi/chezmoi.toml.tmpl
to modify default settings. The configuration includes:
- User information (name, email)
- SSH key configuration
- Development tools to enable/disable
- Node.js options
You can make machine-specific customizations in these files (they won't be tracked by git):
~/.gitconfig_local
- Local Git configuration~/.zshrc_local
- Local Zsh configuration~/.localrc
- Local shell configuration (sourced by .zshrc)
To update your dotfiles:
chezmoi update
Or manually:
cd $(chezmoi source-path)
git pull
chezmoi apply
To remove all dotfiles managed by chezmoi:
sh -c "$(curl -fsLS https://raw.githubusercontent.com/mtxr/dotfiles/main/uninstall)"
Use --dry-run
to see what would be removed:
sh -c "$(curl -fsLS https://raw.githubusercontent.com/mtxr/dotfiles/main/uninstall)" -- --dry-run
-
Permission Denied
chmod +x ~/.local/bin/chezmoi
-
Command Not Found Make sure
~/.local/bin
is in your PATH:echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc source ~/.zshrc
-
Chezmoi Not Found After Installation
export PATH="$HOME/.local/bin:$PATH"
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a pull request
- Cross-platform support (macOS, Ubuntu, Alpine Linux, and more)
- Zsh with plugins (with automatic fallback to Bash on minimal systems)
- Git configuration with sensible defaults
- Homebrew packages (macOS/Linux)
- Custom scripts and utilities
- Development tools and language support
- POSIX-compliant installation and uninstallation scripts
- Automatic dependency management
- Dry-run mode for safe testing
- Color-coded output for better readability
- 1Password integration
MIT