This note documents my setup for building a sane-ish (for me) software environment on macOS for work, development, and life.
Core tasks
- Rename the Mac (Settings -> General -> Name)
- Add home directory to Mac sidebar (from terminal run
open /Usersand then drag homedir to the sidebar) - Add accounts to macOS Accounts (for mail, contacts, calendars)
Install desktop apps
From the App Store install and configure:
From publisher websites, install and configure:
Configure apps
- Login to apps (e.g. Tailscale, Docker, Reeder, Telegram, Firefox, Nextcloud, Joplin).
- Make Firefox default browser
Install command line tools
- Install homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"(and follow instructions) - Install brew tools:
brew install fish python3 git s3cmd - Install python deps:
pip3 install poetry virtualenv - Install MongoDB:
brew tap mongodb/brew && brew update && brew install mongodb-community@6.0 - Install fisher:
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher - Install nvm:
fisher install jorgebucaran/nvm.fish - Install node:
nvm install latest - Install yarn:
npm install --global yarn
Install configurations
Once Nextcloud is installed and synced, install dotfiles:
ln -s ~/Nextcloud/dotfiles/.config ~/.configln -s ~/Nextcloud/dotfiles/.hyper.js ~/.hyper.jsln -s ~/Nextcloud/dotfiles/.vimrc ~/.vimrc
Configure fish
- Add the shell:
echo /usr/local/bin/fish | sudo tee -a /etc/shells - Change default shell:
chsh -s /usr/local/bin/fish
Configure Hyper
Open Hyper preference window, then:
- Set the
shellparam to:/opt/homebrew/bin/fish - To the
pluginsarray add'hyper-solarized-light'
Configuring virtualenvs in fish
Create a virtualenv in the usual way: virtualenv -p python3.10 .venv.
To use virtualenvs in fish start commands with: .venv/bin/, e.g.:
.venv/bin/pip install poetry.venv/bin/poetry install.venv/bin/flask run
(As of writing .venv/bin/activate.fish does not work for me).
Run local MongoDB
For development.
- Create data dir:
mkdir ~/.mongo - Start in background:
mongod --fork --dbpath=/Users/will/.mongo --logpath /dev/null --bind_ip localhost