Skip to content

mcalapurge/macOS_dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

Personal dotfiles for macOS developer tooling.

Quick start

git clone https://github.com/<you>/dotfiles_ng.git ~/dotfiles
cd ~/dotfiles
chmod +x bootstrap.sh
./bootstrap.sh

bootstrap.sh sets up a fresh machine end-to-end. It is idempotent — safe to re-run.

What bootstrap.sh does

  1. Homebrew — installs if missing (supports Apple Silicon + Intel)
  2. Brew bundle — installs all packages and casks from Brewfile
  3. oh-my-zsh — installs if missing, preserves existing .zshrc
  4. Node.js LTS — via nvm (nvm install --lts)
  5. SDKMan — Java / Kotlin / Scala version manager
  6. gh copilot extension — skipped if gh is not yet authenticated; run gh auth login first if needed
  7. Symlinks — runs install.sh to link all config files

Symlinks (install.sh)

Run this alone when you only want to refresh config symlinks without reinstalling tools.

./install.sh
Dotfile Target Description
copilot/config.json ~/.copilot/config.json GitHub Copilot CLI settings
copilot/mcp.json ~/.copilot/mcp.json MCP server configurations
copilot/agents/ ~/.copilot/agents/ Custom Copilot agents
claude/settings.json ~/.claude/settings.json Claude Code settings
zsh/.zshrc ~/.zshrc Zsh config — oh-my-zsh, PATH, aliases, toolchain
zsh/mcalapurge.zsh-theme ~/.oh-my-zsh/themes/mcalapurge.zsh-theme Custom oh-my-zsh prompt theme
nvim/ ~/.config/nvim/ Neovim config (AstroNvim-based) — synced via rsync, not symlinked

Existing files are backed up as .bak before being replaced.

Note: Neovim config is copied with rsync rather than symlinked. This avoids issues with plugins and highlight groups that don't resolve paths correctly through symlinks. install.sh calls sync-nvim.sh --apply automatically.

VS Code extensions

chmod +x vscode/extensions.sh
./vscode/extensions.sh

Installs all extensions in parallel. Edit vscode/extensions.sh to add/remove extensions.

Notes

  • Copilotconfig.json omits machine-specific fields. Run gh auth login then gh extension install github/gh-copilot on a fresh machine (or re-run bootstrap.sh after authenticating).
  • MCP servers — set MDB_MCP_CONNECTION_STRING and TFE_TOKEN in your environment for the MongoDB and Terraform MCP servers in copilot/mcp.json.
  • Neovim — run :Lazy sync after first launch to install plugins. To manually re-sync the config files after making changes in this repo, run ./sync-nvim.sh --apply (use ./sync-nvim.sh without --apply for a dry-run preview).
  • SDKMan — install a JDK after bootstrap: sdk install java.
  • Brewfile.lock.json is gitignored — generated by brew bundle, not committed.

About

dotfiles for various things on macOSX

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors