Originally forked from Mathias's dotfiles and revamped with ideas from webpro/dotfiles
- Homebrew (packages: Brewfile.macos / Brewfile.linux)
- Node.js + npm LTS (packages: npmfile)
- Latest Git, Bash, Python 3, GNU coreutils, curl
$EDITOR(and Git editor) is VS Code (code --wait) on all platforms
This is the standard (home) setup — TypeScript, Docker, KinD, Python, core tools.
Work-specific config lives in a separate private overlay repo (dotfiles-work) that layers on top via symlinked .work files. See how it works below.
Warning: Don't blindly use these settings. Always review the code.
On a sparkling fresh installation of macOS:
sudo softwareupdate -i -a
xcode-select --install
Then install with curl:
bash -c "`curl -fsSL https://raw.githubusercontent.com/mcnamaram/dotfiles/main/remote-install.sh`"
Or clone manually:
git clone https://github.com/mcnamaram/dotfiles.git ~/.dotfiles
The Makefile auto-detects macOS vs Linux. On Linux/WSL it runs apt-get instead of Homebrew and uses Brewfile.linux (no macOS casks). Use it to install everything and symlink configs (via stow):
cd ~/.dotfiles
make
Secrets are stored in macOS Keychain, never in plaintext files. Use the secrets-manage tool:
secrets-manage set openai api-key # prompts for value
secrets-manage get openai api-key # retrieves it
secrets-manage list # shows all dotfiles-managed secrets
Shell startup reads secrets from Keychain automatically via system/.secrets.
Work-specific config lives in a separate private repo. When present, it layers on top:
.workfiles insystem/are sourced after standard files (can override functions)- Git config uses
[includeIf]to apply work email/hooks only in work repos - Work packages install via a separate Brewfile in the overlay
To set up work on top of standard:
git clone <private-overlay-repo> ~/.dotfiles-work
cd ~/.dotfiles-work
make work
macOS only: Open a new shell and run:
dotfiles dock(set Dock items)dotfiles macos(set macOS defaults)
$ dotfiles help
Usage: dotfiles <command>
Commands:
clean Clean up caches (brew, nvm)
dock Apply macOS Dock settings
edit Open dotfiles in IDE
help This help message
macos Apply macOS system defaults
test Run tests
update Update packages and pkg managers (OS, brew, npm)
Many thanks to the dotfiles community and particularly Mathias and webpro.