Getting a new Mac is always exciting, but the first few hours are usually spent setting things up just the way you like them. Here’s a collection of my favorite customizations, terminal tweaks, and productivity hacks that I always apply on a fresh macOS installation.

Macos Setup
Personalizing the Dock
The Dock is where your most-used apps live, but sometimes you want to create a little breathing room between groups of apps. That’s where empty spacer tiles come in.
To add one:
defaults write com.apple.dock persistent-apps -array-add '{"tile-type"="spacer-tile";}'; killall Dock
Each time you run the command, it inserts a blank space in your Dock, and you can rearrange them as needed.
💡 Tip: You can also add small stacks of apps grouped by type. For example, create a folder for browsers, drag it into the Dock, and use the grid view to access them quickly.
Preventing Sleep During Long Tasks
Sometimes you need your Mac awake for hours, like when running long builds, downloads, or data migrations. The simplest approach:
caffeinate -disu
caffeinate
uses a single dash (-
) followed by one or more flags, not--
.- The flags can be combined, so
-disu
is equivalent to-d -i -s -u
.
Here’s what each flag does:
-d
→ Prevent display from sleeping-i
→ Prevent system idle sleep-s
→ Prevent sleep when running on AC power-u
→ Declare user activity (prevents display from dimming)
⚡ --disu
won’t work, because caffeinate
doesn’t support GNU-style long flags.
As long as the caffeinate
process runs, your Mac stays awake.
💡 Tip: Wrap caffeinate
around a command to keep your Mac awake only while that process runs. Example:
caffeinate -i xcodebuild
This way, the Mac automatically returns to normal sleep behavior when the task finishes.
Making the Terminal Usable
Out of the box, macOS Terminal is functional, but a little bland. A few tweaks make it a more comfortable workspace.
Check your shell:
echo $SHELL
Most modern Macs default to Zsh (/bin/zsh
). To customize your prompt, add this to ~/.zshrc
:
PS1="%n %1~ %# "
Reload with:
source ~/.zshrc
This gives you a clean, informative prompt with your username and current directory. Pair it with a nice terminal theme (Solarized, Dracula, or Catppuccin are great choices), and you’ll have a much more pleasant developer experience.
💡 Extra ideas:
- Install iTerm2 for split panes, better search, and more shortcuts.
- Use Homebrew to install developer tools with one command.
- Add plugins like
zsh-autosuggestions
andzsh-syntax-highlighting
for a smoother typing flow.
Making Typing Snappier
If you type fast, macOS’s default key repeat rates feel sluggish. Speed them up with:
defaults write -g InitialKeyRepeat -int 10
defaults write -g KeyRepeat -int 1
⚠️ Warning: Don’t set InitialKeyRepeat
below 10
, or you risk getting stuck at the login screen and needing accessibility features to log in.
Restart your Mac for changes to take effect.
And if you hate the popup menu that appears when holding a key, instead of just repeating it, disable it:
defaults write -g ApplePressAndHoldEnabled -bool false
💡 Tip: If you regularly type in multiple languages, you may prefer keeping the popup enabled, since it helps you access accented characters quickly.
Finder Tweaks
Finder can be friendlier with a few quick adjustments. For example, enable the status bar (bottom of Finder windows), so you can always see the number of items and available disk space.
In Finder:
- Go to View > Show Status Bar
I also recommend enabling Show Path Bar (View > Show Path Bar), so you can see exactly where you are in the filesystem hierarchy.
💡 Extra ideas:
- Enable View > Show Tab Bar to work with multiple Finder tabs like in a browser.
- Use View > As Columns for a fast, hierarchical view when navigating deep folders.
- Add common folders to the sidebar for one-click access.
Git Worktrees for Clean Development
When working with multiple Git branches, I prefer using worktrees instead of constantly checking branches in and out.
Example:
git worktree add ../wt/app_name/feature_two feature_two
This creates a new working directory with the branch feature_two
checked out, perfect for parallel development without polluting your main repo folder.
💡 Extra ideas:
- Use
git worktree list
to see all your active worktrees. - Use
git worktree remove path/to/worktree
to clean up old ones. - Combine worktrees with a
~/Projects/wt/
folder for organized, isolated development environments.
Smarter Window Management with Rectangle
macOS has basic window snapping, but if you want full control over where apps go on your screen, Rectangle is the go-to tool. It lets you quickly move and resize windows using customizable keyboard shortcuts.
💡 Why it’s great:
- Snap windows to halves, thirds, or quarters of the screen.
- Move windows between displays instantly.
- Create advanced layouts that fit your workflow.
To take it further, you can bind shortcuts to the numeric keypad for intuitive tiling. For example, treat your screen like a grid:
- Numpad 7 / 8 / 9 → Top left, top center, top right
- Numpad 4 / 5 / 6 → Left, center, right
- Numpad 1 / 2 / 3 → Bottom left, bottom center, bottom right
Or use 8-section tiling with bindings like:
- Numpad 8 → Top half
- Numpad 2 → Bottom half
- Numpad 4 → Left half
- Numpad 6 → Right half
- Numpad 7 / 9 / 1 / 3 → Corners
This way, you can manage windows fluidly with one hand, without dragging them around.