My Mac Setup
Daniel Wirtz
4 months ago •
Status
Slug
Desciption
Featured
Cover Video
Cover Image
Social Image
Publish date
Last edited time
Created time
URL
Table of contents
Table of contentsFirst stepsInstall Homebrew Change computer name Install apps and toolsApps Oh my ZSH Terminal applications NVMUpdate settingsDock settingsSystem settings Finder settingsIterm 2 settings Bitwarden GitConfigs and dotfiles Inspiration
First steps
Install Homebrew
Homebrew is a package manager that simplifies the installation and management of apps on MacOs. There is also a Homebrew Raycast plugin, which makes it easy to see what’s installed and to search for packages.
# Install Homebrew/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"# Add brew to default shell pathecho >> /Users/eugeneyan/.zprofileecho 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/eugeneyan/.zprofileeval "$(/opt/homebrew/bin/brew shellenv)"
Change computer name
sudo scutil --set ComputerName "wirtzdan"sudo scutil --set LocalHostName "wirtzdan"sudo scutil --set HostName "wirtzdan"
Install apps and tools
Now, with Homebrew installed open the terminal and install all relevant apps and tools.
Apps
brew install --cask \raycast \bitwarden \google-chrome \firefox \brave-browser \zen-browser \cursor \iterm2 \slack \discord \obs \keycastr \cleanshot \descript \capacities \telegram-desktop \whatsapp \font-monaspace \boop \notunes \spotify \qlmarkdown \jordanbaird-ice \
Oh my ZSH
MacOS already uses ZSH as its default shell. To enhance the terminal experience, I’m using Oh My Zsh!. It allows me to enable plugins and themes, making the terminal more functional and visually appealing and to use things such as Starship.
# Install Oh My ZSHsh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"# Install Starship themebrew install starship# Make Starship the default themeecho 'eval "$(starship init zsh)"' >> ~/.zshrc# Reload ZSH configsource ~/.zshrc# Install Plugins (Completion, Suggestion, Syntax highlighting)brew install zsh-autosuggestions zsh-syntax-highlighting
Terminal applications
brew install git nvm yarn pnpmgit \nvm \yarn \pnpm \
NVM
# Install latest LTS versionnvm install --lts# Check if installation was succesfullnode -v && npm -v# Update NPM to latest versionnpm install -g npm@latest# Set defaults for npm:npm set init-author-name="Daniel Wirtz"npm set init-author-email="daniel@danielwirtz.com"npm set init-author-url="danielwirtz.com"
Update settings
Dock settings
My philosophy is to do as much as possible through the keyboard by using Raycast. Therefore, I've disabled the dock by changing the show delay to an arbitary high number.
View settings
defaults write com.apple.dock autohide -bool truedefaults write com.apple.dock autohide-delay -float 1000defaults write com.apple.dock no-bouncing -bool TRUEkillall Dock
System settings
Many system settings can be tweaked in the UI:
View settings
- Appearance →
- Set mode to "Dark Mode"
- Trackpad →
- Enable "Tap to Click"
- Set "Look up & data detectors off" to "Off"
- More gestures →
- Set "Notification Centre" to "Off"
- Set "Tracking speed" to max
- Mouse →
- Set "Mouse speed" to max
- Set "Secondary Click" to "Click Right Side"
- Keyboard →
- Keyboard layouts →
- Disable "Capitalise word automatically"
- Disable "Add full stop with double-space"
- Disable "Use smart quotes and dashes"
- Use
"
for double quotes - Use
'
for single quotes - Keyboard shortcuts →
- Spotlight →
- Disable all (Using Raycast instead)
- Mission control →
- Disable all
- Screenshots →
- Disable all (Using Cleanshot instead)
- Accessibility →
- Zoom →
- Set "Modifier key for scroll gesture" to "⌃ Control" (Great for presentations)
- Advanced →
- Set "Zoomed images moves" to "Continously with pointer"
- Enable "Show zoomed image while screen sharing"
- Pointer control →
- Trackpad options →
- Set "Scroll speed" to max
- Mouse options →
- Set "Scroll speed" to max
- Display →
- Disable "Reduce motion"
- Security and Privacy →
- Screen & System Audio Recording →
- Add permissions for all browsers
- Storage →
- Music creation →
- Click "Remove GarageBand Sound Library"
- Applications →
- Delete all unused apps
But some settings can only be changed through the terminal:
View settings
# Close any open System Preferences panes, to prevent them from overriding# settings we’re about to changeosascript -e 'tell application "System Preferences" to quit'# Show Library folderchflags nohidden ~/Library# Show hidden filesdefaults write com.apple.finder AppleShowAllFiles YES# Add path to title in Finderdefaults write com.apple.finder _FXShowPosixPathInTitle -bool true# Disable the sound effects on bootsudo nvram SystemAudioVolume=" "# Automatically quit printer app once the print jobs completedefaults write com.apple.print.PrintingPrefs "Quit When Finished" -bool true# Disable the “Are you sure you want to open this application?” dialogdefaults write com.apple.LaunchServices LSQuarantine -bool false# Disable shadow in screenshotsdefaults write com.apple.screencapture disable-shadow -bool true# Finder: disable window animations and Get Info animationsdefaults write com.apple.finder DisableAllAnimations -bool true# Keep folders on top when sorting by namedefaults write com.apple.finder _FXSortFoldersFirst -bool true# Automatically open a new Finder window when a volume is mounteddefaults write com.apple.frameworks.diskimages auto-open-ro-root -bool truedefaults write com.apple.frameworks.diskimages auto-open-rw-root -bool truedefaults write com.apple.finder OpenWindowForNewRemovableDisk -bool true# Use list view in all Finder windows by defaultdefaults write com.apple.finder FXPreferredViewStyle -string "Nlsv"# Enable snap-to-grid for icons on the desktop and in other icon views/usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist/usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist/usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist# Expand the following File Info panes:# “General”, “Open with”, and “Sharing & Permissions”defaults write com.apple.finder FXInfoPanesExpanded -dict \General -bool true \OpenWith -bool true \Privileges -bool true# Enable the automatic update checkdefaults write com.apple.SoftwareUpdate AutomaticCheckEnabled -bool true# Check for software updates daily, not just once per weekdefaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1# Download newly available updates in backgrounddefaults write com.apple.SoftwareUpdate AutomaticDownload -int 1# Turn on app auto-updatedefaults write com.apple.commerce AutoUpdate -bool true# Prevent Photos from opening automatically when devices are plugged indefaults -currentHost write com.apple.ImageCapture disableHotPlug -bool true# opening and closing Quick Look windowsdefaults write -g QLPanelAnimationDuration -float 0# opening and closing windows and popoversdefaults write -g NSAutomaticWindowAnimationsEnabled -bool false# Increase speed of how dialog boxes appeardefaults write NSGlobalDomain NSWindowResizeTime .001defaults write -g NSScrollViewRubberbanding -int 0defaults write -g NSAutomaticWindowAnimationsEnabled -bool falsedefaults write -g NSScrollAnimationEnabled -bool falsedefaults write -g NSWindowResizeTime -float 0.001defaults write -g QLPanelAnimationDuration -float 0defaults write -g NSScrollViewRubberbanding -bool falsedefaults write -g NSDocumentRevisionsWindowTransformAnimation -bool falsedefaults write -g NSToolbarFullScreenAnimationDuration -float 0defaults write -g NSBrowserColumnAnimationSpeedMultiplier -float 0defaults write com.apple.dock autohide-time-modifier -float 0defaults write com.apple.dock autohide-delay -float 0defaults write com.apple.dock expose-animation-duration -float 0defaults write com.apple.dock springboard-show-duration -float 0defaults write com.apple.dock springboard-hide-duration -float 0defaults write com.apple.dock springboard-page-duration -float 0defaults write com.apple.finder DisableAllAnimations -bool truedefaults write com.apple.Mail DisableSendAnimations -bool truedefaults write com.apple.Mail DisableReplyAnimations -bool truedefaults write NSGlobalDomain NSWindowResizeTime .001defaults write com.apple.dock expose-animation-duration -int 0; killall Dockdefaults write com.apple.dock expose-animation-duration -float 0.1; killall Dock
Finder settings
View settings
- General →
- Set "New Finder windows show" to "Downloads"
- Disable all in "Show these items on the desktop"
- Sidebar →
- Pin relevant and remove the rest
- Tags →
- Disabel all
- Advanced →
- Enable "Show all Filename Extensions"
- Disable "Show warning before changing an extension"
- Enable "Remove items from the Trash after 30 days"
- Set "When performing a search" to "Search the Current Folder"
- View →
- Enable "Show path bar" (Great for quicker navigation)
- Enable "Show status bar" (Great for folder context)
- Enable "Show Preview" (E.g. for image files)
Iterm 2 settings
View settings
- Keys -> Hotkey -> Set to "⌥+space"
- General → Windows -> Disable "Native full screen windows"
- Appearance ->
- General ->
- Enable "Exclude from Dock and App Switcher"
- Windows →
- Enable "Hide scrollbars"
- Tabs →
- Disable "Show tab bar in fullscreen"
- Profiles ->
- Window →
- Transparency: 5
- Style: Full Screen
- Sreen: Main Screen
- Text ->
- Set font to Monaspace
Bitwarden
View settings
- Security → Enable Touch ID
- Preferences → Clear clipboard → Set to "5 minutes"
Git
View settings
# Set global name and emailgit config --global user.name "wirtzdan"git config --global user.email "daniel@danielwirtz.com"# Set the default branch to main instead of mastergit config --global init.defaultBranch main# Create gitignore_global and always ignore .DS_Store filegit config --global core.excludesfile ~/.gitignore_globalecho ".DS_Store" >> ~/.gitignore_globalecho "._.DS_Store" >> ~/.gitignore_globalecho "**/.DS_Store" >> ~/.gitignore_globalecho "**/._.DS_Store" >> ~/.gitignore_global
Configs and dotfiles
I’m managing my dotfiles and configs for ZSH, VS Code / Cursor, Git and Karabiner through my centralized configs repo.
Inspiration
There are many great articles out there about how to set up a new Mac. Recommend to click through them and see if there is anything else that might be relevant for you.
Mar 22, 2025