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 /Users
and 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 ~/.config
ln -s ~/Nextcloud/dotfiles/.hyper.js ~/.hyper.js
ln -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
shell
param to:/opt/homebrew/bin/fish
- To the
plugins
array add'hyper-solarized-light'
Configuring virtualenv
s 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