I want to use this post as reference for setting up my macOS environment from scratch. Things like default settings, modifications, installations, etc. Time will tell, but hopefully I have captured everything.
System Settings
-
iCloud
- Sign into iCloud account
- Disable iCloud Drive backup for Desktop and Documents folders
-
Notifications
- Turn off notifications for everything
-
Appearance
- Show scroll bars: Always
- Click in the scroll bar to: Jump to spot that's clicked
-
Control Center
- Hide everything
-
Accessibility
- Display: Shake mouse pointer to locate: Disable
- Display: Reduce transparency: Enable
-
Apple Intelligence & Siri
- Disable Apple Intelligence
- Disable Siri
-
Spotlight
- Help Apple Improve Search: Disable
- Disable Spotlight for everything except Applications, Calculator, and System Settings
-
Desktop & Dock
- Position: Left
- Minimize windows: Genie Effect
- Double-click a window title: Do Nothing
- Minimize windows into application icon: Disable
- Automatically hide and show the Dock: Enable
- Show suggested and recent apps in Dock: Disable
- Disable Desktop & Stage Manager: Show on Desktop
- Click wallpaper to reveal desktop: Only in Stage Manager
- Stage Manager: Disable
- Widgets: Disable
- Hot Corners: top-right: Mission Control, bottom-right: Desktop
-
Game Center
- Disable
-
Keyboard
- Key repeat rate: fastest
- Delay until repeat: shortest
- Press fn key to: Do Nothing
-
Mouse
- Tracking speed: 70%
- Natural scrolling: Disable
- Secondary click: Right Side
- Smart zoom: Disable
Finder Settings
-
Toolbar: Back/Forward, Path, Search
-
View as columns
-
Sort by name
-
Hide folders with
chflags hidden <directory>
-
General
- Show these items on desktop: External disks
- New Finder windows show: $HOME
-
Tags
- Turn off everything
-
Sidebar
- Show these items in the sidebar: AirDrop, Applications, Desktop, Downloads, $HOME, External disks
- Recent Tags: Disable
-
Advanced
- Uncheck everything except
- Show all filename extensions: Enable
- Keep folders on top: In windows when sorting by name
- When performing a search: Search This Mac
- Uncheck everything except
Software
- 1Password: Password manager
- Acorn: Image editor
- AppCleaner: App uninstaller
- Firefox: Web browser
- ForkLift: FTP client
- Ghostty: Terminal emulator
- Hidden Bar: Menu bar manager
- IINA: Media player
- Itsycal: Menu bar calendar
- Keka: Archive manager
- Little Snitch: Network monitor
- Meta and Mp3tag: Audio tagger
- Mimestream: Email client
- Mullvad VPN: VPN service
- Nota: Notes manager
- Pimosa: Media editor
- Radiola: Menu bar internet radio
- Rectangle Pro: Window manager
- Spect: Image viewer and organizer
- Swinsian and Tiny Player: Music players
Terminal
Install Homebrew and packages:
- 1password-cli: Command-line interface for 1Password
- atuin: Improved shell history for zsh, bash, fish and nushell
- b2-tools: B2 Cloud Storage Command-Line Tools
- bat: Clone of cat(1) with syntax highlighting and Git integration
- catimg: Insanely fast image printing in your terminal
- duckdb: Embeddable SQL OLAP Database Management System
- exiftool: Perl lib for reading and writing EXIF metadata
- eza: Modern, maintained replacement for ls
- f2: Command-line batch renaming tool
- fastfetch: Like neofetch, but much faster because written mostly in C
- ffmpeg: Play, record, convert, and stream audio and video
- gh: GitHub command-line tool
- git: Distributed revision control system
- imagemagick: Tools and libraries to manipulate images in many formats
- lftp: Sophisticated file transfer program
- magic-wormhole: Securely transfers data between computers
- neovim: Ambitious Vim-fork focused on extensibility and agility
- pandoc: Swiss-army knife of markup format conversion
- wget: Internet file retriever
- yadm: Yet Another Dotfiles Manager
- yt-dlp: Feature-rich command-line audio/video downloader
- zola: Fast static site generator in a single binary with everything built-in
Programming
- Ensure Xcode is installed with
xcode-select -p
- Disable accented character when holding down keys:
defaults write -g ApplePressAndHoldEnabled -bool false
- Docker: Container platforms
- Go and R: Programming languages
- MarkEdit: Markdown editor and Preview pane extension
- Quarto: Publishing system
- Sublime Text: Text editor
- uv and ruff: Python tool
- Zed and Positron: Code editors
- Go tools
- Update Go tools:
goup
(custom function in the .zfunc file)
- Update Go tools:
- Python versions to install with
uv python install <version>
- Tools to install with
uv tool install <tool>
- ty: Python type checker and language server
- pre-commit: A framework for managing pre-commit hooks
- Add the PATHS to "/private/etc/paths.d"
- Go: "/usr/local/go/bin"
- Quarto: "/Applications/quarto/bin"
SSH Key and Github
- Generate a new SSH key and store in 1Password
- Add the SSH key to the ssh-agent
- Add public key to Github (both Authentication and Signing key types)
- Test connection with
ssh -T git@github.com
Firefox
- Enable Firefox Sync for bookmarks, addons, and settings
- Extensions: Kagi, Stylus, Temporary Containers, uBlock Origin, Vimium
- Adjust privacy and extension settings
- Optional: Setup Density for Stylus
Configs
My user settings are either synced in the program or through yadm, which is stored on my private Github repo.
- Clone the dotfile repo for settings and configs (.zsh*, *rc, .config/, etc)
- 1Password for keys, tokens, etc
Themes
- nvim: Paper Color
- Sublime: GitHub Adaptive
- Zed: Minimal
- zsh: Custom zsh prompt