Last active
January 11, 2022 23:15
-
-
Save dstapp/84f44e3c271d3c4cf3865969c97244a3 to your computer and use it in GitHub Desktop.
OS X setup script (currently 10.11)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Homebrew requires Xcode CLI tools to be installed. OS X provides stubs for CLI tools | |
# that trigger the CLI tools installer when called. So we call `git` to start the installation. | |
git | |
echo "Press any key when Xcode CLI tools installation is complete..." | |
read | |
# Install Homebrew | |
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" | |
# Install CLI apps | |
brew install hugo unrar npm packer wget p7zip ctags tmux | |
# Install graphical apps | |
brew cask install adium caffeine shiftit owncloud dockertoolbox \ | |
vlc chromatic iterm2 transmission virtualbox filezilla \ | |
virtualbox-extension-pack vagrant rubymine keepassx \ | |
teamviewer openoffice skype gpgtools lightpaper openzfs | |
# Install the vagrant-hostsupdater plugin | |
vagrant plugin install vagrant-hostsupdater | |
# Install Gems | |
sudo gem install avodeploy sass | |
# Use my dotfiles | |
cd | |
git init | |
git remote add origin https://github.com/dprandzioch/.dotfiles.git | |
git pull origin master | |
# Set ZSH to be the default shell | |
sudo chsh -s /bin/zsh david | |
####################################################################### | |
# Usability enhancements | |
####################################################################### | |
# | |
# Make Dock icons of hidden applications translucent | |
defaults write com.apple.dock showhidden -bool true | |
# | |
# Disable iCloud | |
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool NO | |
sudo defaults write "/System/Library/User Template/Non_localized/Library/Preferences/com.apple.SetupAssistant" DidSeeCloudSetup -bool YES | |
# | |
# Enable AppStore debug menu | |
defaults write com.apple.appstore ShowDebugMenu -bool YES | |
# | |
# Disable Photos app to open automatically | |
defaults -currentHost write com.apple.ImageCapture disableHotPlug -bool YES | |
# | |
# Enable shutdown dialog | |
defaults write com.apple.loginwindow PowerButtonSleepsSystem -bool NO | |
# | |
# Accelerated playback on window size adjustment for Cocoa apps | |
defaults write NSGlobalDomain NSWindowResizeTime -float 0.001 | |
# | |
# Reduce up safari render delay | |
defaults write com.apple.Safari WebKitInitialTimedLayoutDelay 0.25 | |
# | |
# Faster keystroke reactions | |
defaults write NSGlobalDomain KeyRepeat -int 0 | |
# | |
# Disable crash reporter | |
defaults write com.apple.CrashReporter DialogType none | |
# | |
# Force Safari to open target links in new tabs | |
defaults write com.apple.Safari TargetedClicksCreateTabs -bool true | |
# | |
# Expand save panel by default | |
defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true | |
defaults write NSGlobalDomain PMPrintingExpandedStateForPrint -bool true | |
defaults write NSGlobalDomain PMPrintingExpandedStateForPrint2 -bool true | |
# | |
# Quit printer app when job is completed | |
defaults write com.apple.print.PrintingPrefs "Quit When Finished" -bool true | |
# | |
# Disable system-wide resume | |
defaults write NSGlobalDomain NSQuitAlwaysKeepsWindows -bool false | |
# | |
# Disable smart quotes & dashes | |
defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false | |
defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false | |
defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "automaticQuoteSubstitutionEnabled" -bool false | |
# | |
# Disable keyboard illumination on 5 minutes standby | |
defaults write com.apple.BezelServices kDimTime -int 300 | |
# | |
# Require password after sleep or screensaver | |
defaults write com.apple.screensaver askForPassword -int 1 | |
defaults write com.apple.screensaver askForPasswordDelay -int 0 | |
# | |
# Enable subpixel rendering on non-apple lcds | |
defaults write NSGlobalDomain AppleFontSmoothing -int 2 | |
# | |
# When performing a search, search the current folder by default | |
defaults write com.apple.finder FXDefaultSearchScope -string "SCcf" | |
# | |
# Enable spring loading for directories | |
defaults write NSGlobalDomain com.apple.springing.enabled -bool true | |
# | |
# | |
####################################################################### | |
# Finder | |
####################################################################### | |
# | |
# 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 status bar | |
defaults write com.apple.finder ShowStatusBar -bool true | |
# | |
# Show path bar | |
defaults write com.apple.finder ShowPathbar -bool true | |
# | |
# Disable disk 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 | |
# | |
# Show POSIX path as finder window title | |
defaults write com.apple.finder _FXShowPosixPathInTitle -bool true | |
# | |
# Finder status bar originating from $HOME instead of / | |
defaults write /Library/Preferences/com.apple.finder PathBarRootAtHome -bool YES | |
# | |
# Enable AirDrop on all interfaces | |
defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool true | |
# | |
# Show all file extensions | |
/usr/bin/defaults write com.apple.finder AppleShowAllExtensions -bool YES | |
# | |
# Show icons for hard drives, servers, and removable media on the desktop | |
defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true | |
defaults write com.apple.finder ShowHardDrivesOnDesktop -bool true | |
defaults write com.apple.finder ShowMountedServersOnDesktop -bool true | |
defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool true | |
# | |
# Show warning before changing an extension | |
/usr/bin/defaults write com.apple.finder FXEnableExtensionChangeWarning -bool YES | |
# | |
# Enable snap-to-grid for icons views (desktop & finder) | |
/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 | |
# | |
# Use list view in all Finder windows by default | |
# Four-letter codes for the other view modes: `icnv`, `clmv`, `Flwv` | |
defaults write com.apple.finder FXPreferredViewStyle -string "Nlsv" | |
# | |
# Show the ~/Library folder | |
chflags nohidden ~/Library | |
# | |
# Show the /Volumes folder | |
sudo chflags nohidden /Volumes | |
# | |
# Disable emoji substitution | |
defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "automaticEmojiSubstitutionEnablediMessage" -bool false | |
# | |
# Disable spell checking | |
defaults write -g NSAutomaticSpellingCorrectionEnabled -bool false | |
defaults write NSGlobalDomain WebAutomaticSpellingCorrectionEnabled -bool false | |
defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "continuousSpellCheckingEnabled" -bool false | |
# | |
# Daily check for software updates | |
defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1 | |
# | |
# Home dir as default finder location | |
defaults write com.apple.finder NewWindowTarget -string "PfLo" | |
defaults write com.apple.finder NewWindowTargetPath -string "file://${HOME}/" | |
# | |
# | |
####################################################################### | |
# Safari | |
####################################################################### | |
# Privacy: don’t send search queries to Apple | |
defaults write com.apple.Safari UniversalSearchEnabled -bool false | |
defaults write com.apple.Safari SuppressSearchSuggestions -bool true | |
# | |
# Press Tab to highlight each item on a web page | |
defaults write com.apple.Safari WebKitTabToLinksPreferenceKey -bool true | |
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2TabsToLinks -bool true | |
# | |
# Show the full URL in the address bar (note: this still hides the scheme) | |
defaults write com.apple.Safari ShowFullURLInSmartSearchField -bool true | |
# | |
# Prevent Safari from opening ‘safe’ files automatically after downloading | |
defaults write com.apple.Safari AutoOpenSafeDownloads -bool false | |
# | |
# Disable Safari’s thumbnail cache for History and Top Sites | |
defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2 | |
# | |
# Make Safari’s search banners default to Contains instead of Starts With | |
defaults write com.apple.Safari FindOnPageMatchesWordStartsOnly -bool false | |
# | |
# Remove useless icons from Safari’s bookmarks bar | |
defaults write com.apple.Safari ProxiesInBookmarksBar "()" | |
# | |
# Enable the Develop menu and the Web Inspector in Safari | |
defaults write com.apple.Safari IncludeDevelopMenu -bool true | |
defaults write com.apple.Safari WebKitDeveloperExtrasEnabledPreferenceKey -bool true | |
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DeveloperExtrasEnabled -bool true | |
# | |
# Context menu item for safari dev tools | |
defaults write NSGlobalDomain WebKitDeveloperExtras -bool true | |
# | |
# | |
####################################################################### | |
####################################################################### | |
# | |
# Disable send and reply animations in Mail.app | |
defaults write com.apple.mail DisableReplyAnimations -bool true | |
defaults write com.apple.mail DisableSendAnimations -bool true | |
# | |
# Copy email addresses as `[email protected]` instead of `Foo Bar <[email protected]>` in Mail.app | |
defaults write com.apple.mail AddressesIncludeNameOnPasteboard -bool false | |
# | |
# Add the keyboard shortcut ⌘ + Enter to send an email in Mail.app | |
defaults write com.apple.mail NSUserKeyEquivalents -dict-add "Send" -string "@\\U21a9" | |
# | |
# Disable inline attachments (just show the icons) | |
defaults write com.apple.mail DisableInlineAttachmentViewing -bool true | |
# | |
# Disable automatic spell checking | |
defaults write com.apple.mail SpellCheckingBehavior -string "NoSpellCheckingEnabled" | |
# | |
# | |
####################################################################### | |
# Dock | |
####################################################################### | |
# | |
# Enable highlight hover effect for the grid view of a stack (Dock) | |
defaults write com.apple.dock mouse-over-hilite-stack -bool true | |
# | |
# Minimize windows into their application’s icon | |
defaults write com.apple.dock minimize-to-application -bool true | |
# | |
# dock tile size | |
defaults write com.apple.dock tilesize -int 36 | |
# | |
# | |
####################################################################### | |
# Time Machine | |
####################################################################### | |
# | |
# Disable local time machine backups | |
sudo tmutil disablelocal | |
# | |
# Disable time machine selection on new hotplug | |
defaults write com.apple.TimeMachine DoNotOfferNewDisksForBackup -bool YES | |
# | |
# Allow unsupported devices | |
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes -bool YES | |
# | |
# do not create .DS_Store on network shares | |
/usr/bin/defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool YES | |
# | |
# | |
######################################################################## | |
# Performance tuning | |
####################################################################### | |
# | |
# Disable animations | |
defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool NO | |
defaults write -g QLPanelAnimationDuration -float 0 | |
defaults write com.apple.finder DisableAllAnimations -bool YES | |
defaults write com.apple.dock launchanim -bool NO | |
defaults write com.apple.mail DisableReplyAnimations -bool YES | |
defaults write com.apple.mail DisableSendAnimations -bool NO | |
defaults write com.apple.dock expose-animation-duration -float 0.1 | |
defaults write com.apple.dock "expose-group-by-app" -bool true | |
# | |
# Disable dashboard | |
/usr/bin/defaults write com.apple.dashboard mcx-disabled -bool YES | |
# | |
# Don't show Dashboard as a Space | |
defaults write com.apple.dock dashboard-in-overlay -bool true | |
# | |
# Reset Launchpad, but keep the desktop wallpaper intact | |
find "${HOME}/Library/Application Support/Dock" -name "*-*.db" -maxdepth 1 -delete | |
# | |
# Disable sudden motion for ssd | |
sudo pmset -a sms 0 | |
# | |
# | |
######################################################################## | |
# Utilities | |
####################################################################### | |
# | |
# Temrinal: Only use UTF-8 in Terminal.app | |
defaults write com.apple.terminal StringEncodings -array 4 | |
# | |
# Enable the debug menu in Address Book | |
defaults write com.apple.addressbook ABShowDebugMenu -bool true | |
# | |
# Enable Dashboard dev mode (allows keeping widgets on the desktop) | |
defaults write com.apple.dashboard devmode -bool true | |
# | |
# Enable the debug menu in iCal (pre-10.8) | |
defaults write com.apple.iCal IncludeDebugMenu -bool true | |
# | |
# Use plain text mode for new TextEdit documents | |
defaults write com.apple.TextEdit RichText -int 0 | |
# | |
# Open and save files as UTF-8 in TextEdit | |
defaults write com.apple.TextEdit PlainTextEncoding -int 4 | |
defaults write com.apple.TextEdit PlainTextEncodingForWrite -int 4 | |
# | |
# Enable the debug menu in Disk Utility | |
defaults write com.apple.DiskUtility DUDebugMenuEnabled -bool true | |
defaults write com.apple.DiskUtility advanced-image-options -bool true | |
# | |
# Transmission: Trash original torrent files | |
defaults write org.m0k.transmission DeleteOriginalTorrent -bool true | |
# | |
# Transmission: Hide the donate message | |
defaults write org.m0k.transmission WarningDonate -bool false | |
# Transmission: Hide the legal disclaimer | |
defaults write org.m0k.transmission WarningLegal -bool false | |
# | |
# | |
# Restart Finder & Dock | |
killall Finder | |
killall Dock |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment