S
e
t
t
i
n
g
u
p
a
n
e
w
M
a
c
Setting up a new Mac
• • 🌿 Budding • 6 min read
I recently purchased a Mac Mini for personal use and decided it'd be fun to document how I set it up. This is a work in progress and I plan to keep it up to date as my preferences and habits change.
OS settings
- First thing is to update the OS if needed.
- Jump into Audio MIDI Setup and set my audio interface as the default device for output and my webcam as the default input.
- Untoggle the mouse scroll direction from "Natural".
- Remove all apps and folders from the Dock and switch the Dock to auto-hide. I use the Dock for identifying what apps I have open, not as a place for opening them.
- Log in to iCloud, but disable for all apps. Later on when I install Draft and Obsidian I'll allow syncing for these (I prefer to do all my syncing via Dropbox, but these two apps don't have that option).
- Disable spelling correction, text replacement, “smart quotes”, etc. in the Keyboard preference pane.
- In the Advanced settings of Finder turn on "Show all filename extensions".
Apps
- Homebrew. I use this package manager for both CLI tools and as many apps as I can.
- iterm2. My preferred Terminal replacement.
- Dropbox. I use this for syncing almost all my files (excluding those that end up on Github). Initially though I need it to grab my config files.
- 1password. I install this early on as there'll be a lot of logging in going on as I install the apps below!
- Firefox. My browser of choice. I'll probably install Google Chrome later on too as it's useful for development, but for bread and butter browsing I try to use Firefox.
- Karabiner Elements. I use this for keyboard remapping. Nothing fancy, just adding a Hyper key (i.e. command, control, shift, and option all in one to allow for easy global shortcut creation) and making Fn + a/w/s/d into arrow keys.
- Divvy. A very straightforward window management tool. I have shortcuts for the resize widget (Hyper-D) and to make the current app full screen (Hyper-F).
- Alfred. I prefer Alfred over Spotlight, so I'll disable Spotlight and replace the shorcut to point to Alfred. I have pretty simple settings here, with just search for folders and apps.
- Todoist (install via App Store only). This is my task management tool of choice. I add the shortcut Hyper-O for quick adding a task.
- Drafts (install via App Store only). This is a newer app for me, and I use it for, well, drafts 🙂. For the quick add widget I use the shortcut Hyper-W.
- Fantastical. Hands down the best calendar app out there.
- I set the shortcut Hyper-C to open mini view.
- I set it so that the next/current calendar item is visible in the Mac menu bar.
- Aerial. Really pretty screensavers. I set it to turn on after 10 minutes.
- Visual Studio Code. My code editor of choice for quite a while now.
- I also set it up so I can type
code
to access it from the terminal. - Download the Inconsolata font family as that's my default in VS Code.
- Download my settings (see below for a list of plugins).
- I also set it up so I can type
- Rocket. A global emoji picker with a syntax similar to Slack.
- Notion. For personal notes and assorted data and info I need to hold on to.
- Obsidian. For public notes and writing. I've only recently started using Obsidian and I'm still figuring out what I want to live in Notion and what lives here.
- Anki. For language study.
- Google Chrome. Not my go to browser, but useful for development and the occasional website that plays up in Firefox.
- Tweetbot. My go-to Twitter client, though I do find myself using the browser version a bit more these days.
- Espanso. In the past I've used Dash for text snippets, but I've felt that app's experience degrading over the years. I've decided to try out Espanso as a replacement and I'm liking it so far, though I haven't gotten into any complex snippets just yet.
- I keep my configuration in Dropbox and symlink it to the correct location using
ln -s ~/Dropbox/config/espanso ~/Library/Preferences/espanso
- I keep my configuration in Dropbox and symlink it to the correct location using
- Choosy. If you set this app as your default browser it allows you to pick the browser to use whenever you click a link. You can also setup up more specific rules, though I don't really use this feature.
- Loopback. This tool allows you to route audio on your Mac. I specifically use it for sharing system audio for video meetings (e.g. screenshare a video on a call and have the audio playback to other people).
- Discord. I'm not a heavy Discord user, but there's a few channels I'm in.
- Gifox. Create GIFs from screen recordings.
- Bunch. Groups apps together and toggles them open/closed with one command. I'm only just starting to play around with it to see if it's something I'd like to fold into my daily workflow.
- Stretchly. This app tells you when to take a break from the computer. Normally I don't go in for this kind of thing, but I gave it a try after seeing Shaun Wang recommend it and it immediately clicked for me.
Firefox extensions
- Pinboard+. For quickly adding articles to Pinboard.
- To Google Translate. For quick translations. This is probably the part I miss most about Chrome as it has a far better in-page translation experience.
Visual Studio Code plugins
There's a lot, not all of which are particularly interesting to mention, but a couple of good ones are:
- Darktooth Theme. I've been using this for a few years now and am still pretty happy with it.
- Import Cost. Shows the kilobyte cost inline when importing a Javascript library.
- In Any Case. Allows quick conversion between casing styles for a string.
- TODO Highlight. Make all those
TODO:
comments bright yellow. - Toggle Quotes. Toggle the type of quotes used for a string.
Terminal
- Install Oh My ZSH.
- Install the Cobalt2 theme.
- Symlink my
.zsh_rc
file from Dropbox. - Symlink
.zsh_history
from Dropbox. - Sync settings for iterm2 via Dropbox.
- Install zsh-autosuggestions
- Checkout my git commit template.
- Symlink my
.gitconfig
from Dropbox. - Install diff-so-fancy. For fancy diffs 🎩.
- Install NPM and Yarn.
Global Node packages
- todoist-random-project. This is a small script I wrote that picks a random project from Todoist for me to work on. Good for when I'm being indecisive.
Work specific setup
- Figma