Mac setup
I recently ran out of hard drive memory space and couldn't be bothered to track down and uninstall all the clutter that accumulated over two years of software development. Hence, I reset my MacBook. I used this occasion to create a step-by-step guide on how exactly I reset my mac. It can also be used as a migration guide from one mac to another or an explanation of how to set up a new mac.
Preparation
- Do a Time Machine Backup, saving it on an external hard drive. It's always wise to do such a backup before trying to apply major changes to your mac. Should the external hard drive be encrypted, make sure that you haven't saved the password for it on your Mac only so that you can access it after your mac has been erased.
- Note what applications you want to keep. Get rid of those you don't need anymore. Do some research where you can download them from. See the table at the end of this post to see which ones I chose to keep.
-
Configurations of macOS apps are usually saved in dotfiles, i.e. files starting with a dot, like
.bash_profile
. If you want to use those configurations for your new mac, use Mackup to save the dotfiles (it's well-documented) and make sure to keep them somewhere other than the hard drive you're about to erase. Once you have everything set up, this should be all you need to do:```bash # Old mac $ mackup backup ```
- Export your network settings and save them somewhere extern if you want to keep your VPNs etc.
Reset
Reset your mac following these steps.
New Setup
- Install the newest macOS.
- Import and set your network settings.
-
Set most important basic settings in your system preference app, either by using the UI or a file similar to my
.MacOSX
file:$ chmod +x .MacOSX $ sh .MacOSX
The first command gives the file the necessary execution permission. The second command executes the script.
After that, restart your Mac.
-
Some default options I have yet to include in the
.MacOSX
file, they need manual steps:- Keyboard > Input Source > German + English (UK)
- Language > Primary: UK
- Trackpad
-
Point & Click
- Tap to click
- Click: firm
- Tracking speed: one right to middle
-
More Gestures
- App Expoé, three fingers down
- Accessibility
-
Pointer Control
- Trackpad options
- Enable dragging → three-finger drag
- Change location of where screenshots are saved (if not already done with the setup script):
$ cd $ cd Documents $ mkdir Screenshots
- Open
Screenshot.app
> Options > Saved to~/Documents/Screenshots
- Finder > Settings
- Settings > New windows show > Downloads
- Sidebar > Untick iCloud and tags
- Advanced Settings > When performing a search > Search current folder
- Sidebar like this:
-
Set up a basic development environment
# Create minimalist file/project organisation $ cd developer $ mkdir Projects Uni $ cd # Set up git $ git config --global user.name "your_github_username" # Install CLT for Xcode $ xcode-select --install # Create zsh config file $ touch ~/.zshrc # Install Homebrew $ /bin/zsh -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" $ brew update # Install mackup $ brew install mackup # Clone dotfiles repository $ vim ~/.mackup.cfg # Set storage in mackup cfg file [storage] engine = file_system path = path/to/dotfiles directoy = Mackup $ mackup restore # Download & install oh-my-zsh sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" # Install node version manager $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | zsh # Install node $ nvm install node $ nvm use node # Install yarn $ npm i -g yarn
- Install the applications you need. Don't open most of them just yet as Mackup will restore them. I usually go with this order:
- Chrome (to download other apps via the web)
- Raycast
- Rectangle
- The rest in alphabetical order.
- Restore app configurations with Mackup.
brew install mackup
mackup restore
- Set up Time Machine.
That's it.
Name | Purpose | Source | Installation Notes |
---|---|---|---|
Adobe Lightroom CC | Photo-editing | Adobe Creative Cloud | |
Alfred | OS Navigation + miscellaneous | aldredapp.com | |
Anki | App for spaced-repition system | apps.ankiweb.net | |
AppCleaner | Delete mac apps the clean way | freemacsoft.net/appcleaner | |
Calibre | Book management for my Kindle | calibre-ebook.com/download | |
Dozer | Tidy menu bar | brew install --cask dozer |
cmd + shift + s to toggle |
Google Chrome | Daily web-browsing + web dev | google.co.uk/chrome | Sign into Chrome with your google account to automatically import your bookmarks and extensions Extensions: UBlockOrigin, DuckDuckGo, Vimium |
IntelliJ IDEA Ultimate | Java IDE | JetBrains Toolbox | Sync options from account |
OneDrive | Cloud Space | Apple App Store | |
PyCharm Professional | Python IDE | JetBrains Toolbox | Sync options from account |
Quick Draft | Quick menu bar notepad | Apple App Store | cmd + d |
Rectangle | Window resizing + positioning | rectangleapp.com | |
Spark | Apple App Store | ||
Spotify | Music streaming | spotify.com | |
Timer | Pomodoro and timing stuff | Github | |
Visual Studio Code | All-purpose text-editor | code.visualstudio.com | |
Zoom | Non-personal video calls | zoom.us/download |