#!/usr/bin/env bash set -Eeuo pipefail # Runtime environment if [[ "$(uname -s)" != "Darwin" ]]; then echo "Error: this script supports macOS only." >&2 exit 1 fi if (( $(sw_vers -productVersion | cut -d. -f1) < 13 )); then echo "Error: this script requires macOS 13 or later." >&2 exit 1 fi # Show all file extensions in Finder defaults write NSGlobalDomain AppleShowAllExtensions -bool true # Show the path bar and status bar in Finder defaults write com.apple.finder ShowPathbar -bool true defaults write com.apple.finder ShowStatusBar -bool true # Search the current folder by default, and use the list view defaults write com.apple.finder FXDefaultSearchScope -string SCcf defaults write com.apple.finder FXPreferredViewStyle -string Nlsv # Do not warn when changing a file extension defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false # Keep .DS_Store files off network shares and USB drives defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true # Do not show recent applications in the Dock defaults write com.apple.dock show-recents -bool false # Keep Spaces in a fixed order defaults write com.apple.dock mru-spaces -bool false # Repeat keys instead of showing the accent popup, and repeat faster defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false defaults write NSGlobalDomain KeyRepeat -int 2 defaults write NSGlobalDomain InitialKeyRepeat -int 25 # Tap to click defaults write com.apple.AppleMultitouchTrackpad Clicking -bool true defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true defaults write NSGlobalDomain com.apple.mouse.tapBehavior -int 1 # Expand the save and print dialogs by default defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode2 -bool true defaults write NSGlobalDomain PMPrintingExpandedStateForPrint -bool true defaults write NSGlobalDomain PMPrintingExpandedStateForPrint2 -bool true # Save screenshots as PNG without window shadows to ~/Screenshots mkdir -p "${HOME}/Screenshots" defaults write com.apple.screencapture location -string "${HOME}/Screenshots" defaults write com.apple.screencapture type -string png defaults write com.apple.screencapture disable-shadow -bool true # Restart the affected apps so the settings above take effect killall Finder Dock SystemUIServer >/dev/null 2>&1 || true echo "macOS configuration completed. Log out and back in if tap to click or key repeat does not take effect."