Note: this is a fork of mathiasbyrnes/dotfiles. Check out the original for the latest and greatest.
Warning: If you want to give these dotfiles a try, you should first fork this repository, review the code, and remove things you don’t want or need. Don’t blindly use my settings unless you know what that entails. Use at your own risk!
- Clone:
git clone https://github.com/DSchau/dotfiles.git ./init/init.sh: creates~/Projects/{Personal,Work,Scripts}, copies scripts and Ghostty config, creates an SSH key and~/.ssh/config, and installs oh-my-zsh, nvm and bun./bootstrap.sh: copies the dotfiles (.zshrc,.bash_profile,.aliases, …) into~, copies Claude Code commands to~/.claude/commands, sets up pi and syncs Zed./brew.sh: installs Homebrew, CLI tools and apps (casks)./init/mas.sh: installs the Mac App Store apps listed ininit/mas_apps.txt(sign in to the App Store first)./.macos: sets macOS defaults- Optional:
./git.shclones the repos ingit_repos.txtinto~/Projects/{Personal,Work/<Org>}
./init/doctor.sh lists missing brew casks / App Store apps and checks global dependencies.
To update, from this repo: source bootstrap.sh (use set -- -f; source bootstrap.sh to skip the prompt).
bootstrap.sh installs pi if it's missing (to ~/.pi/agent, added to $PATH in .bash_profile). It then merges pi/settings.json into ~/.pi/agent/settings.json and installs the packages listed there (e.g. pi-open-tui). The repo's packages list replaces your local one.
The default provider is OpenRouter. The API key is not committed. Create one at openrouter.ai/keys, then run /login in pi. pi saves it to ~/.pi/agent/auth.json, outside the repo. pi also reads an OPENROUTER_API_KEY environment variable if one is set.
init/Zed is the source of truth. bootstrap.sh overwrites ~/.config/zed/settings.json and keymap.json. Extensions are installed by Zed itself from auto_install_extensions. It also links the zed CLI into ~/.local/bin.
- Dracula Pro is paid and not committed:
bootstrap.shcopies the Zed theme from iCloud if it's there - The editor font (Fira Code) is installed by
brew.sh
~/.path: sourced first; use it to extend$PATH, e.g.export PATH="/usr/local/bin:$PATH"~/.extra: extra settings (git name/email); tracked and copied bybootstrap.sh
Suggestions/improvements welcome!
If specific to this repository, feel free to use these issues.
Original author
| Mathias Bynens |
- @ptb and his macOS Setup repository
- Ben Alman and his dotfiles repository
- Cătălin Mariș and his dotfiles repository
- Gianni Chiappetta for sharing his amazing collection of dotfiles
- Jan Moesen and his ancient
.bash_profile+ shiny tilde repository - Lauri ‘Lri’ Ranta for sharing loads of hidden preferences
- Matijs Brinkhuis and his dotfiles repository
- Nicolas Gallagher and his dotfiles repository
- Sindre Sorhus
- Tom Ryder and his dotfiles repository
- Kevin Suttle and his dotfiles repository and macOS-Defaults project, which aims to provide better documentation for
~/.macos - Haralan Dobrev
- Anyone who contributed a patch or made a helpful suggestion
