No description
- Lua 100%
| .chezmoiscripts | ||
| dot_config | ||
| .chezmoi.toml.tmpl | ||
| .chezmoiignore | ||
| .gitignore | ||
| dot_gitconfig.tmpl | ||
| dot_tmux.conf | ||
| dot_wezterm.lua.tmpl | ||
| dot_zshenv.tmpl | ||
| LICENSE | ||
| README.md | ||
Dotfiles
Cross-platform dotfiles managed with chezmoi.
What's Included
| Config | Description | Platforms |
|---|---|---|
| zsh | Shell with starship prompt, fzf, zoxide, aliases | macOS, Linux |
| neovim | Lazy.nvim setup with LSP, treesitter, telescope | All |
| starship | Minimal prompt with catppuccin mocha theme + jj | All |
| ghostty | Terminal with catppuccin theme, tmux-like keybinds | macOS, Linux |
| jj | Jujutsu VCS configuration | All |
| git | Git config with delta pager | All |
Quick Start
Fresh Machine
# Install chezmoi and apply dotfiles in one command
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply git@git.nullsoft.is:einar/dotfiles.git
Existing chezmoi Setup
chezmoi init git@git.nullsoft.is:einar/dotfiles.git
chezmoi diff # Preview changes
chezmoi apply # Apply changes
From an Existing Machine
chezmoi init --apply --source /path/to/this/repo
Daily Usage
chezmoi diff # See what would change
chezmoi apply # Apply all changes
chezmoi edit ~/.zshrc # Edit a managed file
chezmoi cd # cd into the source directory
chezmoi update # Pull latest and apply
Adding New Files
chezmoi add ~/.config/some/config # Add a file
chezmoi add --template ~/.config/x # Add as template (for platform-specific content)
Structure
dot_config/
zsh/ # Shell config (templated for macOS/Linux)
nvim/ # Neovim config (cross-platform)
starship/ # Starship prompt config
ghostty/ # Ghostty terminal + themes
jj/ # Jujutsu VCS config (templated)
dot_gitconfig.tmpl # Git config (templated with name/email)
.chezmoiscripts/ # One-time install scripts per OS
.chezmoi.toml.tmpl # chezmoi config (prompts for name/email)
.chezmoiignore # OS-specific file exclusions
Files ending in .tmpl are Go templates that adapt to the current OS.
ZSH Setup
This config expects ZDOTDIR to be set so zsh reads from ~/.config/zsh/ instead of ~/:
# Add to /etc/zshenv or ~/.zshenv (outside chezmoi)
export ZDOTDIR="$HOME/.config/zsh"
License
GPL-3.0