#!/bin/bash # Close any open System Preferences panes, to prevent them from overriding # settings we’re about to change osascript -e 'tell application "System Preferences" to quit' # Ask for the administrator password upfront sudo -v # Keep-alive: update existing `sudo` time stamp until `macos.sh` has finished while true; do sudo -n true sleep 60 kill -0 "$$" || exit done 2>/dev/null & # Set Dark Mode defaults write -g AppleInterfaceStyle Dark # Set sidebar icon size defaults write NSGlobalDomain NSTableViewDefaultSizeMode -int 3 # Expand save panel by default defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode2 -bool true # Expand print panel by default defaults write NSGlobalDomain PMPrintingExpandedStateForPrint -bool true defaults write NSGlobalDomain PMPrintingExpandedStateForPrint2 -bool true # Disable the “Are you sure you want to open this application?” dialog defaults write com.apple.LaunchServices LSQuarantine -bool false # Disable automatic capitalization as it’s annoying when typing code defaults write NSGlobalDomain NSAutomaticCapitalizationEnabled -bool false # Disable smart dashes as they’re annoying when typing code defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false # Disable automatic period substitution as it’s annoying when typing code defaults write NSGlobalDomain NSAutomaticPeriodSubstitutionEnabled -bool false # Disable smart quotes as they’re annoying when typing code defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false # Disable auto-correct defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false # Reduce Motion defaults write com.apple.Accessibility ReduceMotionEnabled -int 1 # Menu Bar Size defaults write NSGlobalDomain NSTitleBarSize 22 # Set a blazingly fast keyboard repeat rate defaults write NSGlobalDomain KeyRepeat -int 2 defaults write NSGlobalDomain InitialKeyRepeat -int 15 # Set language and text formats defaults write NSGlobalDomain AppleLanguages -array "en-DE" "de-DE" "ja-DE" defaults write NSGlobalDomain AppleLocale -string "en_DE@currency=EUR" defaults write NSGlobalDomain AppleMeasurementUnits -string "Centimeters" # Save screenshots to Dropbox defaults write com.apple.screencapture location -string "${HOME}/Dropbox/Bilder/Screenshots" # Set Desktop as the default location for new Finder windows # For other paths, use `PfLo` and `file:///full/path/here/` defaults write com.apple.finder NewWindowTarget -string "PfLo" defaults write com.apple.finder NewWindowTargetPath -string "file://${HOME}/Downloads/" # Show/hide icons for hard drives, servers, and removable media on the desktop 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 true # Finder: show all filename extensions defaults write NSGlobalDomain AppleShowAllExtensions -bool true # Finder: show status bar defaults write com.apple.finder ShowStatusBar -bool true # Finder: show path bar defaults write com.apple.finder ShowPathbar -bool true # Keep folders on top when sorting by name defaults write com.apple.finder _FXSortFoldersFirst -bool true # When performing a search, search the current folder by default defaults write com.apple.finder FXDefaultSearchScope -string "SCcf" # Disable the warning when changing a file extension defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false # Enable spring loading for directories defaults write NSGlobalDomain com.apple.springing.enabled -bool true # Remove the spring loading delay for directories defaults write NSGlobalDomain com.apple.springing.delay -float 0.5 # Avoid creating .DS_Store files on network or USB volumes defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true # Disable disk image verification defaults write com.apple.frameworks.diskimages skip-verify -bool true defaults write com.apple.frameworks.diskimages skip-verify-locked -bool true defaults write com.apple.frameworks.diskimages skip-verify-remote -bool true # Automatically open a new Finder window when a volume is mounted defaults write com.apple.frameworks.diskimages auto-open-ro-root -bool true defaults write com.apple.frameworks.diskimages auto-open-rw-root -bool true defaults write com.apple.finder OpenWindowForNewRemovableDisk -bool true # Show the ~/Library folder chflags nohidden ~/Library # Show the /Volumes folder sudo chflags nohidden /Volumes # Icon Settings /usr/libexec/PlistBuddy -c "Set DesktopViewSettings:IconViewSettings:iconSize 44" ~/Library/Preferences/com.apple.finder.plist /usr/libexec/PlistBuddy -c "Set DesktopViewSettings:IconViewSettings:gridSpacing 60" ~/Library/Preferences/com.apple.finder.plist # Set the icon size of Dock items to 36 pixels defaults write com.apple.dock tilesize -int 36 # Change minimize/maximize window effect defaults write com.apple.dock mineffect -string "scale" # Minimize windows into their application’s icon defaults write com.apple.dock minimize-to-application -bool true # Disable spring loading for all Dock items defaults write com.apple.dock enable-spring-load-actions-on-all-items -bool false # Hide indicator lights for open applications in the Dock defaults write com.apple.dock show-process-indicators -bool false # Don’t animate opening applications from the Dock defaults write com.apple.dock launchanim -bool false # Speed up Mission Control animations defaults write com.apple.dock expose-animation-duration -float 0.1 # Group windows by application in Mission Control defaults write com.apple.dock "expose-group-apps" -bool "true" # Don’t automatically rearrange Spaces based on most recent use defaults write com.apple.dock mru-spaces -bool false # Remove the auto-hiding Dock delay defaults write com.apple.dock autohide-delay -float 0 # Remove the animation when hiding/showing the Dock defaults write com.apple.dock autohide-time-modifier -float 0 # Disable Display have separate Spaces defaults write com.apple.spaces "spans-displays" -bool "true" # Automatically hide and show the Dock defaults write com.apple.dock autohide -bool true # Make Dock icons of hidden applications translucent defaults write com.apple.dock showhidden -bool true # Don’t show recent applications in Dock defaults write com.apple.dock show-recents -bool false # Remove all persistent apps and others from the Dock # defaults delete com.apple.dock persistent-apps # defaults delete com.apple.dock persistent-others # Hot corner: top left → None defaults write com.apple.dock wvous-tl-corner -int 0 defaults write com.apple.dock wvous-tl-modifier -int 0 # Hot corner: top right → Notification Center defaults write com.apple.dock wvous-tr-corner -int 12 defaults write com.apple.dock wvous-tr-modifier -int 0 # Hot corner: bottom left → Desktop defaults write com.apple.dock wvous-bl-corner -int 4 defaults write com.apple.dock wvous-bl-modifier -int 0 # Hot corner: bottom right → Put display to sleep defaults write com.apple.dock wvous-bl-corner -int 10 defaults write com.apple.dock wvous-bl-modifier -int 0 # Enable full keyboard access for all controls (e.g. enable Tab in modal dialogs) defaults write NSGlobalDomain AppleKeyboardUIMode -int 3 # Tracking speed: maximum 5.0 defaults write -g com.apple.trackpad.scaling -float 5.0 # Mouse Tracking speed: maximum 5.0 defaults write -g com.apple.mouse.scaling -float 1.5 # Trackpad: enable tap to click for this user and for the login screen defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 1 defaults write NSGlobalDomain com.apple.mouse.tapBehavior -int 1 # Mouse Tracking speed: (default is 3 in GUI) defaults read -g com.apple.mouse.scaling # Mouse Tracking speed: maximum 5.0 defaults write -g com.apple.mouse.scaling 5.0 # Trackpad: map bottom right corner to right-click defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick -int 2 defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick -bool true defaults -currentHost write NSGlobalDomain com.apple.trackpad.trackpadCornerClickBehavior -int 1 defaults -currentHost write NSGlobalDomain com.apple.trackpad.enableSecondaryClick -bool true # Move windows by dragging any part of the window (ctrl + cmd) defaults write -g NSWindowShouldDragOnGesture YES for app in "Dock" \ "Finder" \ "Messages" \ "SystemUIServer"; do killall "${app}" &>/dev/null done echo "Done. Note that some of these changes require a logout/restart to take effect."