Personal dotfiles managed with chezmoi.
This repository contains my personal configuration files for:
| Category | Applications |
|---|---|
| Shell | zsh, zplug, starship |
| Editor | Neovim (AstroNvim) |
| Terminal | Alacritty, Ghostty, WezTerm |
| Multiplexer | tmux, tmuxp, smug |
| Version Control | Git, Git Delta |
| Cloud/DevOps | kubectl, k9s, Terraform, AWS CLI |
| Runtime Manager | mise |
| Other | bat, eza, fzf, zoxide, direnv |
# macOS
brew install chezmoi
chezmoi init --apply fabioluciano
# Arch Linux
yay -S chezmoi
chezmoi init --apply fabiolucianosh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply fabioluciano- macOS (Homebrew)
- Linux (Arch/Pacman + AUR)
# Install all packages from Brewfile
brew bundle --file=~/.Brewfile# Using pacmanfile
pacmanfile sync ~/.Pacmanfile# Install kubectl plugins
cat ~/.Krewfile | xargs -I{} kubectl krew install {}Templates are used to handle platform-specific configurations:
{{- if eq .chezmoi.os "darwin" }}
# macOS specific config
{{- else if eq .chezmoi.os "linux" }}
# Linux specific config
{{- end }}
- Lazy loading - kubectl completion loads on first use
- History - 1M lines with deduplication
- Completion - Enhanced with fzf-tab
- Aliases - Organized shortcuts for common tools
- Theme - Tokyo Night across all terminals
- Font - CaskaydiaCove Nerd Font
- Integration - Auto-attach to tmux session
- Delta - Beautiful diffs with syntax highlighting
- Aliases - Comprehensive shortcuts
- Safety - Force push with lease, fetch prune
.
├── dot_zshrc.tmpl # Shell configuration
├── dot_Brewfile # macOS packages
├── dot_Pacmanfile # Arch Linux packages
├── dot_Krewfile # kubectl plugins
├── private_dot_config/
│ ├── alacritty/ # Alacritty terminal
│ ├── ghostty/ # Ghostty terminal
│ ├── wezterm/ # WezTerm terminal
│ ├── git/ # Git configuration
│ ├── nvim/ # Neovim (AstroNvim)
│ ├── tmux/ # tmux configuration
│ ├── tmuxp/ # tmuxp sessions
│ ├── smug/ # smug sessions
│ ├── k9s/ # Kubernetes TUI
│ ├── mise/ # Runtime manager
│ ├── starship.toml # Shell prompt
│ └── bat/ # bat (cat replacement)
├── private_dot_gnupg/ # GPG agent configuration
└── dot_ssh/ # SSH configuration
# Check what would be changed
chezmoi diff
# Apply changes
chezmoi apply
# Edit a file and apply
chezmoi edit ~/.zshrc
# Update from remote repository
chezmoi update
# Add a new file
chezmoi add ~/.config/new-app/config# Start default session
tmuxp load ~/.config/tmuxp/tmuxp.yml
# Or with smug
smug start main- chezmoi
- zsh
- git
- starship - Shell prompt
- mise - Runtime version manager
- eza - Modern ls replacement
- bat - cat with syntax highlighting
- fzf - Fuzzy finder
- zoxide - Smarter cd
- delta - Git diff pager
MIT License - Feel free to use and modify.
This is a personal configuration repository, but feel free to use it as inspiration for your own dotfiles!
Author: Fábio Luciano