My basic user preferences and configuration files, mostly cobbled together from various examples and repositories that I've found across the web.
I am running on macOS Ventura, using zsh as my shell.
For a completely fresh installation, start by generating a strap.sh
script. It
will checkout the dotfiles, and invoke the appropriate scripts to set things up
and install various software.
To do that, visit strap.mikemcquaid.com.
The project is organized using the scripts-to-rule-them-all structure.
script/bootstrap
: setup dependencies (Uses Strap as outlined above.)script/setup
: setup initial state (e.g., directories, etc.)script/update
: update to current state/commitscript/nuke
: uninstall dotfiles
The global scripts delegate out to various topic-level scripts, such that it's also possible to only setup/update/nuke the relevant context you're interested in.
For instance, to just update software, run homebrew/update
or to just nuke
terminal settings, run terminal/nuke
.
On a fresh macOS install, you may also wish to set some sensible system preferences:
~dotfiles
./macos/set-defaults.sh
To set your Mac's machine name:
~dotfiles
hostname=my_hostname ./macos/set-machine-name.sh
Some repositories can be too large for the git
info displayed in the zsh prompt.
To disable it for a specific repo, run the following inside it:
git config --local --bool shell.showdirty false
(It's also possible to disable the upstream status by setting the
shell.showpush
flag.)
See the README file in the vscode
directory for details.
XCode command-line tools sometime get confused. Try these:
xcode-select --install
xcodebuild -license accept
xcodebuild -runFirstLaunch
NOTE: Some of these may require sudo
; use it if you need to.
Many aspects of this setup is based on (if not straight copied) from other people's setups: