Personal configuration files for development tools and shell environments.
Preview changes (dry run):
./install.sh --dry-runThis shows what files would be copied without actually modifying anything. Useful for:
- Seeing what will change before running
- Verifying the script on a new machine
- Checking current git settings
Install dotfiles:
./install.shThis script copies configuration files to their appropriate locations:
- Git global ignore (
.gitignore_global) - Shell configs (bash, zsh, fish)
- VS Code settings and extensions (if installed)
- Zed editor settings and keymap (if installed)
- Prettier formatting config
On macOS, also runs Homebrew package installation and system defaults.
After running install.sh, you need to configure your git identity manually on each machine. This allows you to use different emails for work vs personal laptops.
git config --global user.name "Your Name"
git config --global user.email "your@email.com"Examples:
- Work laptop:
git config --global user.email "mark@nuon.co" - Personal laptop:
git config --global user.email "mtm20176@gmail.com"
If you want to sign your commits with GPG:
-
Check if you have GPG keys:
gpg --list-secret-keys --keyid-format=long
-
If you don't have a key, generate one:
gpg --full-generate-key
-
Configure git to use your key:
git config --global user.signingkey YOUR_KEY_ID git config --global commit.gpgsign true -
Add your GPG key to GitHub:
gpg --armor --export YOUR_KEY_ID
Copy the output and add it to GitHub: Settings → SSH and GPG keys → New GPG key
The dotfiles contain behavior and preferences (shell aliases, editor settings, etc.) but NOT identity settings (name, email, signing keys). This prevents:
- Accidentally overwriting work git settings
- Breaking GPG signing on machines without your keys
- Using the wrong email on different machines
Each machine can have its own identity configuration while sharing the same convenient development environment.
MIT License - Copyright (c) 2026 Mark Milligan