Skip to content

Repository files navigation

Dotfiles

My dotfiles, managed with GNU Stow on macOS/Linux and symlinks on Windows.

macOS / Linux

Packages

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.

macOS Setup

git clone "https://github.com/avidit/dotfiles.git"
cd dotfiles
make all

make 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.

PowerShell

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-profile

On Windows, this is included in make all. On macOS / Linux, run it separately if you use pwsh.

Windows

Configs

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.

Windows Setup

Install GNU Make first (one-time):

winget install GnuWin32.Make

Then run:

git clone "https://github.com/avidit/dotfiles.git"
cd dotfiles
make all

make 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.

About

my .dotfiles

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages