Skip to content

chris-nowicki/mac-setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My Mac Setup

This repo contains info on all the apps / tools / settings I use on my Mac.

What MacBook do I have?

I am using a 2021 16" MacBook Pro

The specs:

  • Apple M1 Max
  • 64GB RAM
  • 2TB SSD

Read more about my MacBook here.

Homebrew

Homebrew allows us to install tools and apps from the command line.

To install it, open up the built in Terminal app and run this command:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

This will also install the xcode build tools which is needed by many other developer tools.

Github

Setup GitHub next so you can clone this repo and access the Brewfile for easy batch installs.

Github SSH Setup

  • Follow this guide to setup an ssh key for github
  • Follow this guide to add the ssh key to your github account
  • Follow this guide to test the ssh connection

Multi-Account SSH Config (Work Computer Only)

If this is a work machine, you'll need a second SSH key to keep personal and work GitHub accounts separate. Generate a key for each account following the guides above, then configure ~/.ssh/config to route them automatically:

# Personal GitHub
Host github.com
    HostName github.com
    AddKeysToAgent yes
    UseKeychain yes
    IdentityFile ~/.ssh/id_ed25519_personal
    IdentitiesOnly yes

# Work GitHub
Host github-bc
    HostName github.com
    AddKeysToAgent yes
    UseKeychain yes
    IdentityFile ~/.ssh/id_ed25519_bc
    IdentitiesOnly yes

Clone work repos using the github-bc host alias:

git clone git@github-bc:bigcommerce/repo-name.git

Note: This pairs with the git includeIf config in Dotfiles which automatically sets your work email for repos under ~/Dev/commerce/.

Clone This Repo

git clone git@github.com:chris-nowicki/Setup.git ~/Setup
cd ~/Setup

Install Everything with Brewfile

This repo includes a Brewfile that contains all CLI tools, GUI apps, fonts, and Mac App Store apps. Install everything in one command:

brew bundle --file=Brewfile

This replaces the need to install apps individually. See the Brewfile for the full list.

Note: Mac App Store apps require the mas CLI (included in the Brewfile) and you must be signed into the App Store first.

OS Settings

These are my preferred settings for Desktop, the Dock and Finder.

Most of these can be applied via defaults write commands instead of clicking through System Settings.

Dock

I don't use the Dock at all. It takes up screen space, and I can use RayCast to launch apps and AltTab to switch between apps. I make the dock as small as possible and auto hide it.

# Small dock size
defaults write com.apple.dock tilesize -int 36
# Magnification off
defaults write com.apple.dock magnification -bool false
# Minimize windows into application icon
defaults write com.apple.dock minimize-to-application -bool true
# Auto-hide the Dock
defaults write com.apple.dock autohide -bool true
# Don't show suggested and recent apps
defaults write com.apple.dock show-recents -bool false
# Restart Dock to apply changes
killall Dock

Desktop & Stage Manager

I don't like the new Desktop, Stage Manager or Widget features in Tahoe, so I disable them.

# Disable Stage Manager
defaults write com.apple.WindowManager GloballyEnabled -bool false
# Show Desktop -> only in Stage Manager on click
defaults write com.apple.WindowManager EnableStandardClickToShowDesktop -bool false
# Show windows from an application -> All at Once
defaults write com.apple.WindowManager AppWindowGroupingBehavior -bool true

Widgets & Windows

# Show Widgets -> in Stage Manager only (not on Desktop)
defaults write com.apple.WindowManager StandardHideWidgets -bool true

Finder

# Show all filename extensions
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
# Disable warning before changing an extension
defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
# Search the current folder by default
defaults write com.apple.finder FXDefaultSearchScope -string "SCcf"
# New Finder windows show home folder
defaults write com.apple.finder NewWindowTarget -string "PfHm"
# Show path bar
defaults write com.apple.finder ShowPathbar -bool true
# Show status bar
defaults write com.apple.finder ShowStatusBar -bool true
# Show tab bar
defaults write com.apple.finder ShowTabView -bool true
# Hide all desktop icons
defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool false
defaults write com.apple.finder ShowHardDrivesOnDesktop -bool false
defaults write com.apple.finder ShowMountedServersOnDesktop -bool false
defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool false
# Restart Finder to apply changes
killall Finder

Trackpad

# Disable natural scrolling
defaults write NSGlobalDomain com.apple.swipescrolldirection -bool false

Menu Bar

# Show date always, hide day of week, show seconds
defaults write com.apple.menuextra.clock ShowDate -int 1
defaults write com.apple.menuextra.clock ShowDayOfWeek -bool false
defaults write com.apple.menuextra.clock ShowSeconds -bool true
defaults write com.apple.menuextra.clock FlashDateSeparators -bool false
killall SystemUIServer

Other System Settings (Manual)

These settings don't have reliable defaults write equivalents:

  • System Settings -> General -> AutoFill & Passwords -> AutoFill Passwords and Passkeys -> uncheck
  • System Settings -> Control Center -> Spotlight -> Don't show in Menu Bar
  • System Settings -> Control Center -> Siri -> Don't show in Menu Bar

Quick Launching

RayCast

The built in spotlight search is a bit slow for me and usually has web search results as the default instead of apps or folders on my machine.

I use RayCast (included in Brewfile).

RayCast Plugins

App Switching

The built in App switcher only shows application icons, and only shows 1 icon per app regardless of how many windows you have open in that app.

I use an app switcher called AltTab (included in Brewfile). It shows full window previews, and has an option to show a preview for every open window in all applications (even minimized ones).

I replace the built-in CMD+TAB shortcut with AltTab.

Menu Bar Utilities

Hidden Bar

If you have several apps running that have menu bar icons, Hidden Bar (included in Brewfile) will let you choose which ones should be hidden. This cleans things up if you have a ton of background apps running.

Web Browsers

Safari

I use safari for my everyday browsing life.

Google Chrome

I use Google Chrome for my work and local development previews.

Apps I Use

All of the following are installed via the Brewfile with brew bundle:

Mac App Store Apps

These are installed via mas in the Brewfile:

  • 1Password for Safari
  • Final Cut Pro
  • Keynote
  • Numbers
  • Pixelmator Pro
  • Speedtest

VS Code

My settings are optimized for a minimal, distraction-free setup since I primarily use Claude Code and only open the IDE for reviewing diffs and quick edits.

Settings and CLAUDE.md config are backed up in this gist.

Extensions:

Command Line Tools

All installed via the Brewfile:

Fonts

Installed via the Brewfile:

Terminal

I prefer Ghostty (included in Brewfile).

Shell

Load dotfiles

All my dotfiles are stored on github.

I clone this repo to my machine and copy the files into my home directory.

Node.js

I use nvm to manage the installed versions of Node.js on my machine. This allows me to easily switch between Node.js versions depending on the project I'm working in.

See installation instructions here.

OR run this command:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

Now that nvm is installed, you can install a specific version of node.js and use it:

nvm install 20
nvm use 20
node --version

Global Modules

There are a few global node modules I use a lot:

npm install -g npm-check-updates

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages