Skip to content

Configuration

Terminal window
# Re-create symlinks
./core/config/manager.sh link
# Process templates
./core/config/manager.sh template

Some config files (VSCode settings.json, Mise config.toml) can’t use environment variables directly. These use .template files with {{HOME}} as a placeholder.

Terminal window
# Generate config files from templates
./core/config/manager.sh template

{{HOME}} gets replaced with your actual home directory. Generated files are gitignored — only .template files are tracked.

The WezTerm weather widget needs an OpenWeather API key.

Create .env at the dotfiles root:

Terminal window
OPENWEATHER_API_KEY=your-api-key

Lookup order:

  • OPENWEATHER_API_KEY env var
  • $DOTFILES_ROOT/.env
  • ~/dotfiles/.env
  • Relative paths from config directories

For Lua-based configs (WezTerm), add DOTFILES_ROOT to your shell config:

Terminal window
export DOTFILES_ROOT="$HOME/go/github.com/esh2n/dotfiles/dotfiles"

Personal settings go in these files:

FilePurpose
~/.config/git/config.localGit identity and preferences
~/.config/jj/conf.d/user.tomlJujutsu user settings (name, email)
domains/dev/home/.zshenvShell environment variables
dotfiles/
├── core/ # Installer, config manager, utilities
├── domains/ # Domain-specific configurations
│ ├── creative/ # Media tools, wallpapers
│ ├── dev/ # Neovim, terminals, shells, languages
│ ├── infra/ # Network, security
│ ├── system/ # Fonts, colors, themes
│ └── workspace/ # Window managers, status bars
└── specs/ # Architecture docs