Skip to content

edlsh/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Dotfiles

Personal dotfiles managed with chezmoi.

Quick Install (New Machine)

# One-liner bootstrap
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply enzolucchesi

# Or step by step
brew install chezmoi
chezmoi init https://github.com/enzolucchesi/dotfiles.git
chezmoi diff     # Preview changes
chezmoi apply    # Apply changes

Platform Decision Tree

graph TD
    Start((chezmoi apply)) --> OS{OS Type?}
    OS -->|macOS| Darwin[Load darwin config]
    OS -->|Linux| Linux[Load linux config]
    
    Darwin --> DarwinPkgs[Homebrew packages<br/>broot, 1password-cli]
    Darwin --> DarwinPath[PATH: /opt/homebrew]
    Darwin --> DarwinSecrets[1Password secrets]
    
    Linux --> LinuxPkgs[Linuxbrew packages<br/>keychain, 1password-cli]
    Linux --> LinuxPath[PATH: /home/linuxbrew]
    Linux --> LinuxSecrets[1Password secrets]
    
    DarwinSecrets --> Shared[Shared Config]
    LinuxSecrets --> Shared
    
    Shared --> Shell[zsh + zinit + starship]
    Shared --> Tools[eza, bat, ripgrep, fd<br/>fzf, zoxide, atuin]
    Shared --> Editor[nvim + LazyVim]
    Shared --> Terminal[tmux + catppuccin]
Loading

What's Included

Category Tools Platform
Shell zsh, zinit, starship, atuin Both
Terminal tmux, ghostty Both
Editor nvim (LazyVim) Both
CLI eza, bat, ripgrep, fd, fzf, zoxide, delta, television Both
Dev mise, git, gh Both
Utilities btop, yazi, broot Both
Secrets 1Password CLI Both

Repository Structure

dotfiles/
β”œβ”€β”€ .chezmoiroot          # Points to home/
β”œβ”€β”€ .chezmoiversion       # Minimum chezmoi version
β”œβ”€β”€ Makefile              # Common operations
β”œβ”€β”€ .mise/tasks/          # mise task runner scripts
β”œβ”€β”€ README.md
└── home/                 # Chezmoi source directory
    β”œβ”€β”€ .chezmoi.toml.tmpl    # Config template
    β”œβ”€β”€ .chezmoidata.yaml     # Shared data
    β”œβ”€β”€ .chezmoiignore        # Ignored files
    β”œβ”€β”€ .chezmoitemplates/    # Shared template fragments
    β”‚   β”œβ”€β”€ aliases           # Shell aliases
    β”‚   β”œβ”€β”€ path-common       # Common PATH setup
    β”‚   └── 1password-secrets # API keys from 1Password
    β”œβ”€β”€ Brewfile              # Homebrew packages
    β”œβ”€β”€ dot_zshrc.tmpl        # β†’ ~/.zshrc
    β”œβ”€β”€ dot_bashrc.tmpl       # β†’ ~/.bashrc
    β”œβ”€β”€ dot_gitconfig.tmpl    # β†’ ~/.gitconfig
    β”œβ”€β”€ dot_tmux.conf.tmpl    # β†’ ~/.tmux.conf
    β”œβ”€β”€ dot_profile.tmpl      # β†’ ~/.profile
    β”œβ”€β”€ run_once_before_*     # First-run setup scripts
    β”œβ”€β”€ run_onchange_*        # Package update scripts
    └── dot_config/           # β†’ ~/.config/
        β”œβ”€β”€ nvim/
        β”œβ”€β”€ ghostty/
        β”œβ”€β”€ starship.toml
        └── ...

Daily Commands

# Using make
make apply      # Apply changes
make diff       # Preview changes
make update     # Pull & apply from git
make status     # Show file status

# Using mise
mise run apply
mise run diff
mise run update

# Direct chezmoi
chezmoi edit ~/.zshrc     # Edit a dotfile
chezmoi re-add            # Re-add modified files
chezmoi cd                # Go to source directory

Secrets Management

API keys are stored in 1Password and injected at chezmoi apply time:

# Secrets are fetched via chezmoi template functions
# See home/.chezmoitemplates/1password-secrets

# Requires 1Password CLI to be configured:
op account add
op signin

Machine-Specific Config

Edit ~/.config/chezmoi/chezmoi.toml for machine-specific settings:

[data]
    name = "Your Name"
    email = "[email protected]"
    github_username = "username"

Managed with chezmoi

About

🏠 Personal dotfiles managed with chezmoi

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published