Warning: these dotfiles are currently a work in progress (not yet complete). Feel free to take Inspiration from them, but best not to use them as is.
This is a repo of my personal dotfiles for macOS. The main philosophy is to use
- A modern Unix workflow.
- The
XDGdirectory specification.
There are two commands. Both are idempotent; pick by where you are.
| Command | Use it when | What it does |
|---|---|---|
./bootstrap |
Fresh Mac, OR not sure of state. | Installs Homebrew + Dropbox cask, opens Dropbox, waits for sign-in (one human pause), waits for the dotfiles repo to sync, then execs ./install from the synced location. |
./install |
You're already in ~/Dropbox/repos/dotfiles and just want a dotbot refresh. |
Runs dotbot: symlinks, Brewfile, npm, macOS defaults. |
Flags (both commands accept):
--no-hints— suppress post-install reminders.
Make aliases (no behavioral difference): make bootstrap, make dotbot_install.
./bootstrap re-runs are cheap because every phase has a skip-check (Homebrew installed? Dropbox cask installed? app
running? signed in? repo synced?). On an already-configured machine it will fast-forward through all five detection
phases and hand off to ./install. Ctrl-C is safe at any time; the next invocation resumes at the unfinished phase.
git clone --recurse-submodules --remote-submodules \
git@github.com:shamindras/dotfiles.git ~/dotfiles-bootstrap
cd ~/dotfiles-bootstrap
./bootstrapYou'll be asked to sign in to Dropbox once, in the GUI window the script opens. After sign-in detection, ./bootstrap
waits for ~/Dropbox/repos/dotfiles to sync, then runs ./install from there. The temp clone at ~/dotfiles-bootstrap
is no longer needed afterward and can be removed.
From the synced repo:
cd ~/Dropbox/repos/dotfiles
./install # or: make dotbot_install./install applies macOS system defaults (scripts/setup/setup-macos), which needs sudo and may require a
logout/reboot for some changes to take effect.
These dotfiles have been mainly inspired by the following people. I thank them for openly sharing their work.
Dotfile Sources
- Alicia Sykes' dotfiles.
- Mattmc3's zshrc1 config.
- Josh Medeski's dotfiles.
- Josean Martinez's dotfiles and accompanying YouTube videos.
- Shivan's zk config
- Mathias Bynen's dotfiles and in particular his macOS dotfiles.
- Kevin Suttle and his
macOS-Defaults project, which aims to provide better documentation
for
~/.macos. This is inspired by Mathias Bynen's.macossettings. - Dylan McDowell's zsh config
- Linkarzu's neovim markdown setup and his dotfiles.