Personal shell configuration for macOS (zsh), Linux/bash servers, and Windows (PowerShell).
dotfiles/
├── shell/
│ ├── aliases.sh # shared aliases — sourced by .zshrc and .bashrc
│ └── profile.ps1 # shared aliases for PowerShell (mirrors aliases.sh)
├── .zshrc # macOS / zsh (oh-my-zsh + powerlevel10k)
├── .bashrc # Linux servers / bash
├── .vimrc
├── .p10k.zsh
└── scripts/
├── bootstrap.sh # full setup: macOS or personal Linux (installs zsh, omz, etc.)
├── bootstrap_server.sh # minimal setup: bash servers (aliases + vimrc only)
├── bootstrap_windows.ps1 # Windows PowerShell setup
└── bootstrap_vim.sh # vim/neovim only
bash -lc 'git clone https://github.com/dylangovender/dotfiles.git ~/dotfiles && ~/dotfiles/scripts/bootstrap.sh'git clone https://github.com/dylangovender/dotfiles.git ~/dotfiles && ~/dotfiles/scripts/bootstrap_server.sh# One-time: allow local scripts to run
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
# Clone and bootstrap
git clone https://github.com/dylangovender/dotfiles.git $HOME\dotfiles
. $HOME\dotfiles\scripts\bootstrap_windows.ps1Note: creating a symlink for
$PROFILErequires Windows Developer Mode (Settings → For developers → Developer Mode) or running PowerShell as Administrator. The bootstrap script falls back to a dot-source line automatically if symlinks aren't available.
Some aliases in .zshrc reference SSH host aliases defined in ~/.ssh/config. This file is intentionally not tracked here as it contains machine-specific paths and credentials.
After setting up a new machine, create the relevant Host blocks in ~/.ssh/config manually. The minimum required block format is:
Host <alias>
HostName <ip-or-hostname>
User <username>
IdentityFile ~/.ssh/<keyname>
IdentitiesOnly yes
Aliases that depend on ~/.ssh/config being configured:
sshwait— requires a host alias matching the name used in the alias
Edit shell/aliases.sh (bash/zsh) and mirror the change in shell/profile.ps1 (PowerShell), then commit and push.
On any machine to pull updates:
- macOS/Linux:
git -C ~/dotfiles pull && source ~/.zshrc(or~/.bashrc) - Windows:
git -C $HOME\dotfiles pullthen restart PowerShell (or. $PROFILE)