My dotfiles, managed with GNU Stow on macOS/Linux and symlinks on Windows.
Managed with stow — each subdirectory mirrors the desired layout under $HOME.
| Package | Config | Repo path | System path |
|---|---|---|---|
bash/ |
bash | bash/.bashrc |
~/.bashrc |
brewfile/ |
Homebrew bundle | brewfile/.config/brewfile/Brewfile |
~/.config/brewfile/Brewfile |
env/ |
Shared shell environment (sourced by bash and zsh) | env/.config/shell/env.sh |
~/.config/shell/env.sh |
fish/ |
fish | fish/.config/fish/config.fish |
~/.config/fish/config.fish |
fish/ |
Fisher plugins | fish/.config/fish/fish_plugins |
~/.config/fish/fish_plugins |
ghostty/ |
Ghostty | ghostty/.config/ghostty/config.ghostty |
~/.config/ghostty/config.ghostty |
git/ |
git | git/.gitconfig |
~/.gitconfig |
git/ |
gitignore (global) | git/.gitignore_global |
~/.gitignore_global |
starship/ |
starship | starship/.config/starship.toml |
~/.config/starship.toml |
tmux/ |
tmux | tmux/.tmux.conf |
~/.tmux.conf |
vim/ |
vim | vim/.vimrc |
~/.vimrc |
zsh/ |
zsh | zsh/.zshrc |
~/.zshrc |
Repo path links open the file in this repository. System path links point to the same repo file because stow symlinks each target path to its source file here.
git clone "https://github.com/avidit/dotfiles.git"
cd dotfiles
make allmake all installs Homebrew packages, sets fish as the default shell, and creates all symlinks via stow.
Individual targets: make install-homebrew-packages, make set-fish-as-default-shell, make install-dotfiles, make install-fisher, make install-fish-plugins, make install-powershell-profile.
To remove all symlinks: make uninstall-dotfiles.
Optional: make install-powershell-profile links the PowerShell profile (see PowerShell below). Not included in make all.
Cross-platform PowerShell 7 (pwsh) profile. Linked with make install-powershell-profile — not managed by stow.
| File | Description |
|---|---|
powershell/profile.ps1 |
Profile: starship, zoxide, PSReadLine, helper functions |
powershell/functions.ps1 |
Helper functions (.., touch, export, Invoke-Elevated, etc.) |
powershell/install-profile.ps1 |
Install script (used by Makefile) |
| Platform | System paths |
|---|---|
| macOS / Linux | ~/.config/powershell/profile.ps1, ~/.config/powershell/functions.ps1 |
| Windows | %USERPROFILE%\Documents\PowerShell\Profile.ps1, %USERPROFILE%\Documents\PowerShell\functions.ps1 |
Requires pwsh. Starship and zoxide are loaded when available (via Homebrew on macOS, winget on Windows).
make install-powershell-profileOn Windows, this is included in make all. On macOS / Linux, run it separately if you use pwsh.
| File | Description |
|---|---|
git/.gitconfig |
Git config |
git/.gitignore_global |
gitignore (global, via core.excludesFile) |
starship/.config/starship.toml |
starship prompt |
winget/packages.json |
Package list for winget |
PowerShell profile — see PowerShell above.
Install GNU Make first (one-time):
winget install GnuWin32.MakeThen run:
git clone "https://github.com/avidit/dotfiles.git"
cd dotfiles
make allmake all installs packages via winget, PowerShell modules, creates symlinks, and links the PowerShell profile.
Individual targets: make install-winget-packages, make install-powershell-modules, make install-dotfiles, make install-powershell-profile.
To remove all symlinks: make uninstall-dotfiles.
For macOS system defaults, see mathiasbynens/dotfiles. For Windows system defaults, see jayharris/dotfiles-windows.