forked from geerlingguy/mac-dev-playbook
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add full Mac setup guide, adjust defaults for simplicity's sake.
- Loading branch information
1 parent
55dbe86
commit f94da0d
Showing
3 changed files
with
123 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
# Full Mac Setup Process (for Jeff Geerling) | ||
|
||
There are some things in life that just can't be automated... or aren't 100% worth the time :( | ||
|
||
This document covers that, at least in terms of setting up a brand new Mac out of the box. | ||
|
||
## Initial configuration of a brand new Mac | ||
|
||
Before starting, I completed Apple's mandatory macOS setup wizard (creating a local user account, and optionally signing into my iCloud account). Once on the macOS desktop, I do the following (in order): | ||
|
||
- Install Ansible (following the guide in [README.md](README.md)) | ||
- **Sign in in App Store** (since `mas` can't sign in automatically) | ||
- Clone mac-dev-playbook to the Mac: `git clone [email protected]:geerlingguy/mac-dev-playbook.git` | ||
- Drop `config.yml` from `~/Dropbox/Apps/Config` to the playbook (copy over the network or using a USB flash drive). | ||
- Run the playbook with `--skip-tags post`. | ||
- If there are errors, you may need to finish up other tasks like installing 'old-fashioned' apps first (since I try to place Photoshop in the Dock and it can't be installed automatically). Then, run the playbook again ;) | ||
- Start Synchronization tasks: | ||
- Open Photos and make sure iCloud sync options are correct | ||
- Open Music, make sure computer is authorized, and set Library sync options | ||
- Open Dropbox, sign in, and set up sync | ||
- Install old-fashioned apps: | ||
- Install [Creative Cloud](https://creativecloud.adobe.com/apps/download/creative-cloud) | ||
- Install Photoshop/Illustrator manually | ||
- (If required:) | ||
- Install [Elgato Stream Deck](https://www.elgato.com/en/downloads) | ||
- Open Livestream profile inside `~/Dropbox/Apps/Config/Stream Deck` | ||
- Install [Elgato Key Light Air (Control Center)](https://www.elgato.com/en/downloads) | ||
- Install [Autodesk Fusion 360](https://www.autodesk.com) | ||
- Install Microsoft Office Home & Student 2019 (https://account.microsoft.com/services/) | ||
- Install [Fritzing](https://fritzing.org/download/) | ||
- Install Meshmixer (but it looks like it's gone now!) | ||
- Configure FastMail account: | ||
- Log into Fastmail | ||
- Go to settings, go to the setup page for macOS Mail | ||
- Download the profile and double click to install | ||
- Head to the 'Profiles' System Preference pane and click install | ||
- Open Calendar and enable personal Google CalDAV account (you have to manually sign in). | ||
- Manually copy `~/Development` folder from another Mac (to save time). | ||
- Manual settings to automate someday: | ||
- System Preferences: | ||
- Accessibility > Display > Reduce transparency | ||
- Keyboard > Modifier Keys... > Caps Lock to Esc | ||
- Safari: | ||
- View > Show Status Bar | ||
- Preferences > Advanced > "Show full website address" | ||
- Preferences > Advanced > "Show Develop menu in menu bar" | ||
- Dock: | ||
- Add jgeerling, Downloads, Applications, and Video Projects folders | ||
- Terminal: | ||
- Preferences > Profiles > Set JJG-Term as the default theme | ||
- _After Dropbox Sync completes_: Run the playbook with `--tags post` to complete setup. | ||
- Symlink the synchronized `config.yml` into the playbook dir: `ln -s /Users/jgeerling/Dropbox/Apps/Config/mac-dev-playbook/config.yml /Users/jgeerling/Development/mac-dev-playbook/config.yml` | ||
- These things might be automatable, but I do them manually right now: | ||
- Configure Time Machine backup drive and [Time Machine Editor](https://tclementdev.com/timemachineeditor/) (if needed) | ||
- Install Wireguard from App Store and add configuration (if needed) | ||
|
||
## To Wrap in Post-provision automation | ||
|
||
The following tasks have to wait for the initial Dropbox sync to complete before they'll succeed. So ideally I'll stick this all in a post-provision script but somehow flag it not to run on first provision. | ||
|
||
``` | ||
# ZSH Aliases. | ||
ln -s /Users/jgeerling/Dropbox/Apps/Config/.aliases /Users/jgeerling/.aliases | ||
# Electrum BTC Wallet. | ||
ln -s /Users/jgeerling/Dropbox/Apps/Electrum/default_wallet /Users/jgeerling/.electrum/wallets/default_wallet | ||
# SSH setup. | ||
ssh-keygen # and create a default key to set up .ssh folder | ||
sudo ln -s /Users/jgeerling/Dropbox/Apps/Config/ssh/config ~/.ssh/config | ||
# TODO - Manually copy any shared SSH keys that are needed. | ||
# Ansible setup. | ||
sudo mkdir -p /etc/ansible | ||
sudo ln -s /Users/jgeerling/Dropbox/Apps/Config/ansible/ansible.cfg /etc/ansible/ansible.cfg | ||
sudo ln -s /Users/jgeerling/Dropbox/Apps/Config/ansible/hosts /etc/ansible/hosts | ||
sudo ln -s /Users/jgeerling/Dropbox/VMs/roles /etc/ansible/roles | ||
mkdir -p /Users/jgeerling/.ansible | ||
ln -s /Users/jgeerling/Dropbox/Apps/Config/ansible/galaxy_token /Users/jgeerling/.ansible/galaxy_token | ||
ln -s /Users/jgeerling/Dropbox/Apps/Config/ansible/mm-vault-password.txt /Users/jgeerling/.ansible/mm-vault-password.txt | ||
ln -s /Users/jgeerling/Dropbox/VMs/ /Users/jgeerling/.ansible/collections | ||
# Final Cut Pro setup. (Open Motion first) | ||
cp -r /Users/jgeerling/Dropbox/Apps/Config/Motion/Motion\ Templates.localized/ /Users/jgeerling/Movies/Motion\ Templates.localized/ | ||
cp -r /Users/jgeerling/Dropbox/Apps/Config/Motion/Text\ Styles/ /Users/jgeerling/Library/Application\ Support/Motion/Library/Text\ Styles.localized/ | ||
# Sequel Ace favorites. (Open Sequel Ace first) | ||
cp /Users/jgeerling/Dropbox/Apps/Config/Sequel\ Ace/Favorites.plist /Users/jgeerling/Library/Containers/com.sequel-ace.sequel-ace/Data/Library/Application\ Support/Sequel\ Ace/Data/Favorites.plist | ||
# Font setup. | ||
cp ~/Dropbox/Apps/Config/Fonts/* ~/Library/Fonts/ | ||
# Vim setup. | ||
mkdir -p ~/.vim/autoload | ||
mkdir -p ~/.vim/bundle | ||
cd ~/.vim/autoload | ||
curl https://raw.githubusercontent.com/tpope/vim-pathogen/master/autoload/pathogen.vim > pathogen.vim | ||
cd ~/.vim/bundle | ||
git clone git://github.com/scrooloose/nerdtree.git | ||
``` | ||
|
||
## When formatting old Mac | ||
|
||
- Sign out of Adobe Creative Cloud | ||
- Sign out of Panic Sync in Transmit | ||
- Deauthorize Apple Music in iTunes/Music App | ||
- Make sure anything new merged into `~/Dropbox/Apps/Config`: | ||
- Fonts from ~/Library/Fonts | ||
- Motion Plugins from ~/Movies/Motion | ||
- Final Cut Pro Text Styles in ~/Library/Application Support/Motion/Library/Text Styles | ||
- Sequel Ace shortcuts from ~/Library/Containers/com.sequel-ace.sequel-ace/Data/Library/Application\ Support/Sequel\ Ace/Data/Favorites.plist | ||
- Follow Apple's guide (TODO) |