Awesome
MacOS Buildout
This repo acts as a log for my buildout of my laptop. As I add stuff or change settings, I log it here so pave & restores can go quickly in the future. Feel free to fork & customize to your liking.
More background info: BLOG: Rapid Complete Install / Reinstall OS X Like a Champ in Three-ish Hours
Before Paving, document current config
Do the following before paving the partition. This is to get the way I have things configured in the dock & menu bar back the way I want them.
-
Set up timestamped backup folder, {{PRIVATE_BACKUP}}, OneDrive to copy things
-
Screenshot all installed apps
-
Screenshot OneDrive sync'd doclib's from MS Teams & save => {{PRIVATE_BACKUP}}
-
XCOPY the following => {{PRIVATE_BACKUP}}
NOTE: many of the hidden files & folders are copied as "dot-files"
~/_play
~/.gitconfig
~/.gitmessage
~/.npmrc
~/.ssh
~/.yarnrc
~/.zsh
~/.zprofile
~/.zshenv
~/.zshrc
~/Movies
~/voitanos-workspace
- review other folders in the root
-
Dev
- Dump list of all repos in
~/repos
=> {{PRIVATE_BACKUP}}/{{BACKUPDATE}} - Clone all repos (+ upstream remotes) using this script: scripts/repo-gen-clone-script.zsh
- Dump list of all repos in
-
iStat Menu
- backup settings => {{PRIVATE_BACKUP}}/iStat Menus Settings.ismp
-
Node
-
refresh NPM global package install list: ./scripts/npm-install-packages-lts-*.zsh
npm list -g --depth=0
-
-
Copy virtual machines => external storage
-
Postman
- export all collections & environments => {{PRIVATE_BACKUP}}/Postman-backup.zip
-
Screenflow
- log batch export settings to ./AppSettings/Screenflow
-
Stream Deck
- export & save Stream Deck profiles => {{PRIVATE_BACKUP}}/Stream Deck - {{..}}.streamDeckProfilesBackup
-
Visual Studio Code
-
refresh installed extensions install list: ./scripts/vscode-ext-install.zsh
code --list-extensions
-
backup snippets & user settings to {{PRIVATE_BACKUP}}/VisualStudioCode
- user settings:
~/Library/Application Support/Code/User
- user settings:
-
MacOS & System
-
have a current Apple TimeMachine backup job finished
-
screenshots of Finder settings
-
screenshot MacOS dock
-
screenshot expanded Bartender MacOS Menu Bar
Installed apps
-
get list of all apps installed via Homebrew:
brew leaves
Adobe Creative Cloud
-
Launch each app and sync settings (PUSH) for:
- Media Encoder
- Photoshop
- Premiere Pro
-
Photoshop:
- export saved actions: ./AppSettings/AdobeCreativeCloud/Photoshop
-
Premiere Pro:
- export custom presets: ./AppSettings/AdobeCreativeCloud/PremierePro
-
Jump Desktop
-
export list of VMs => {{PRIVATE_BACKUP}}
-
Mac App Store apps
-
refresh list installed MacOS apps: ./scripts/macos-install.zsh
mas list
Pave partition
- restart with <kbd>⌘</kbd>+<kbd>R</kbd>
- go to Disk Utility
- select the main drive, then select Erase > Erase Volume Group
- create new ADFS volume
- install MacOS via internet
Install apps
The following installs & configuration should be done to setup automated installs.
If installing on Apple Silicon
Install Rosetta 2
sudo softwareupdate --install-rosetta
Homebrew & Homebrew Cask
Install Homebrew for automated installs & updates.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
[!TIP] If get error about
zsh compinit: insecure directories, run compaudit for list.
, first try to run the following to see if it fixes it:chmod go-w '/opt/homebrew/share' chmod -R go-w '/opt/homebrew/share/zsh'
... if the issue persists, do what it says:
$ compaudit
For the folder(s) returned, fix it with:
$ sudo chmod -R 755 {PATH}
Install fonts
curl -L https://raw.githubusercontent.com/andrewconnell/osx-install/master/scripts/core-fonts.zsh | zsh
Install & setup console
Installs ideal shell, prompt, and terminals
NOTE: Monitor the terminal for password prompts & errors/warnings.
-
run following to install cores
curl -L https://raw.githubusercontent.com/andrewconnell/osx-install/master/scripts/core-install.zsh | zsh
-
copy the dotfiles & folders (overwriting existing) into home folder
-
search for any
{{{REPLACE_THIS}}}
and replace with correct values -
setup SSH with 1Password for
.gitconfig
- 1Password > Settings > Developer & select all options
Install apps via Homebrew: homebrew-install-apps.zsh
Install apps using Homebrew.
NOTE: Monitor the terminal for password prompts & errors/warnings.
run following to install cores
curl -L https://raw.githubusercontent.com/andrewconnell/osx-install/master/scripts/homebrew-install-apps.zsh | zsh
Pay attention for extra installs & steps at the end.
Setup Warp theme
- Copy Tailwind theme from
./dotfiles/.warp
>~/
- Launch Warp & login
- Settings > Appearance > Theme, select Dark
- Find and select Tailwind
Install Mac App Store apps: macos-install.zsh
Install apps from the Apple App Store.
curl -L https://raw.githubusercontent.com/andrewconnell/osx-install/master/scripts/macos-install.zsh | zsh
Manual Installs
- Amphetamine Enhancer - https://github.com/x74353/Amphetamine-Enhancer
- Sophos Home A/V
Configure apps
Three step process:
- Get OneDrive syncing to get access to backups, settings (in OneDrive), licenses & passwords in password manager
- Login, license, install, & configure remaining apps
Configure core apps to acquire backups, licenses & passwords
- login to the following apps
- Google Chrome
- do this first & login to password manager to get licenses
- OneDrive
- do this to get sync running... contains backup files collected before pave
- Google Chrome
- Visual Studio Code
-
install extensions collected before pave:
curl -L https://raw.githubusercontent.com/andrewconnell/osx-install/master/scripts/vscode-ext-install.zsh | zsh
-
copy snippets & settings:
- from ./AppSettings/VisualStudioCode
- to
~/Library/Application Support/Code/User
-
apply licenses to extensions Quokka & Wallaby
-
Setup SSH
- setup SSH keys
-
copy backed up
./.ssh
keys from {{PRIVATE_BACKUP}} =>./.ssh
-
configure SSH keys
# set permission to make my keys private sudo chmod 400 ~/.ssh/id_rsa # configure 'config' folder permissions sudo chmod 600 ~/.ssh/config # add key to SSH agent # + enter passphrase from password manager when prompted ssh-add ~/.ssh/id_rsa # add to keychain ssh-add -K
-
Configure Installed Apps
-
Alfred
- Activate power pack within app settings
- Preferences > Advanced: Syncing - set to ./{{PRIVATE-BACKUP}}/Alfred
-
Amphetamine
-
iStat Settings
- license & restore settings: ./AppSettings/iStat Menus Settings.ismp
-
Bartender
-
License & configure:
-
-
Control Center
- Open & configure to launch at login
-
Divvy
-
import shortcuts by opening Safari / Firefox & enter the url in ./AppSettings/divvy.md
-
-
Jump Desktop
- import the machines from export before pave
-
Microsoft Outlook
- Signature
- get signatures from previous "sends"
- Signature
-
Microsoft Teams
-
Parcel
-
Screenflow
- license
- create custom batch export profile
-
Slack
-
Steam
- Launch & login
- Disable auto login: Preferences > Interface > [uncheck] Run Steam with my computer starts
-
Stream Deck
- restore profiles
- install plugins from Stream Deck store:
- Home Assistant
- Phillips Hue
- VLC
Additional downloads & installs: scripted-installs.zsh
curl -L https://raw.githubusercontent.com/andrewconnell/osx-install/master/scripts/scripted-installs.zsh | zsh
Install custom fonts
- Open
~/Library/Fonts
- For the following folders, select all fonts files, open in macOS' Font Book, & install them:
- AC Handwriting
- Omnes
- Segoe UI MDL2
Creative Cloud installs
- Install apps:
- Acrobat DC
- After Effects
- Audition
- Bridge
- Illustrator
- Media Encoder
- Photoshop
- Premiere Pro
- Import settings from the pre-pave section above on Adobe CC apps
- Manually install aescripts + aeplugins manager, login & install plugins
Install Node
Manage node installs using NVM... this lets me test different versions of node as well as avoid issue with having to use sudo
when installing packages globally.
mkdir ~/.nvm
Install & configure Node LTS & stable versions
[!CAUTION] The following script doesn't work. Something is causing
nvm
to not be seen as a valid comment.Instead, copy the blocks of code from the following installer script file and manually run in the console.
This script installs multiple Node versions:
curl -L https://raw.githubusercontent.com/andrewconnell/osx-install/master/scripts/node-install.zsh | zsh
Post installation & configuration checks
Update Homebrew, Homebrew Cask & purge installs
brew doctor
brew update
brew cleanup
Setup git
NOTE: This might already be done by copying the hidden ~./.gitconfig.
git config --global user.name "Andrew Connell"
git config --global user.email <insert primary email>
git config --global credential.helper osxkeychain
# set VSCode as commit message editor & merge tool
git config --global core.editor "code -w"
git config --global merge.tool code
MacOS Tweaks
-
Desktop (change these settings by right-click desktop & pick Show View Options)
-
System Preferences
-
Accessibility
-
Dock
-
settings: System Preferences > Dock
-
update dock to the backup image
-
-
General
-
Keyboard
-
Shortcuts - uncheck options for Spotlight, then manually setup activation keystroke for Alfred to <kbd>CMD</kbd>+<kbd>SPACE</kbd>
-
-
Mission Control
-
Internet Accounts
-
Printers
- install / add printers
-
Security > Privacy
- Activate & enable where necessary
-
Users & Groups / Login Items
-
Data Restore
- Clone select repositories from github =>
~/repos
Setup TimeMachine Backups
Run first backups.
Ongoing... HOWTO Keep Things Updated
to keep Homebrew installed things update, do this:
brew update # download app updated formulas
brew outdated # what's old?
brew upgrade # upgrade everything locally
# list all brew casks installed & their versions
brew cask outdated
brew cask upgrade
# cleanup everything
brew cleanup
update MacOS apps:
mas outdated # what's old
mas upgrade # upgrade everything
update MacOS: ref
softwareupdate --list
# install things based on the name returned using
sudo softwareupdate --install [name listed]