Skip to content

Instantly share code, notes, and snippets.

Last active June 8, 2023 20:56
Star You must be signed in to star a gist
What would you like to do?
New Mac Setup Script
echo "Creating an SSH key for you..."
ssh-keygen -t rsa
echo "Please add this public key to Github \n"
echo " \n"
read -p "Press [Enter] key after this..."
echo "Installing xcode-stuff"
xcode-select --install
# Check for Homebrew,
# Install if we don't have it
if test ! $(which brew); then
echo "Installing homebrew..."
ruby -e "$(curl -fsSL"
# Update homebrew recipes
echo "Updating homebrew..."
brew update
echo "Installing Git..."
brew install git
echo "Git config"
git config --global "Brad Parbs"
git config --global
echo "Installing brew git utilities..."
brew install git-extras
brew install legit
brew install git-flow
echo "Installing other brew stuff..."
brew install tree
brew install wget
brew install trash
brew install svn
brew install mackup
brew install node
#@TODO install our custom fonts and stuff
echo "Cleaning up brew"
brew cleanup
echo "Installing homebrew cask"
brew install caskroom/cask/brew-cask
echo "Copying dotfiles from Github"
cd ~
git clone .dotfiles
cd .dotfiles
sh symdotfiles
echo "Grunting it up"
npm install -g grunt-cli
#Install Zsh & Oh My Zsh
echo "Installing Oh My ZSH..."
curl -L | sh
echo "Setting up Oh My Zsh theme..."
cd /Users/bradparbs/.oh-my-zsh/themes
curl > brad-muse.zsh-theme
echo "Setting up Zsh plugins..."
cd ~/.oh-my-zsh/custom/plugins
git clone git://
echo "Setting ZSH as shell..."
chsh -s /bin/zsh
# Apps
# Install apps to /Applications
# Default is: /Users/$user/Applications
echo "installing apps with Cask..."
brew cask install --appdir="/Applications" ${apps[@]}
brew cask alfred link
brew cask cleanup
brew cleanup
echo "Please setup and sync Dropbox, and then run this script again."
read -p "Press [Enter] key after this..."
echo "Restoring setup from Mackup..."
#mackup restore @TODO uncomment
echo "Setting some Mac settings..."
#"Disabling system-wide resume"
defaults write NSGlobalDomain NSQuitAlwaysKeepsWindows -bool false
#"Disabling automatic termination of inactive apps"
defaults write NSGlobalDomain NSDisableAutomaticTermination -bool true
#"Allow text selection in Quick Look"
defaults write QLEnableTextSelection -bool TRUE
#"Disabling OS X Gate Keeper"
#"(You'll be able to install any app you want from here on, not just Mac App Store apps)"
sudo spctl --master-disable
sudo defaults write /var/db/SystemPolicy-prefs.plist enabled -string no
defaults write LSQuarantine -bool false
#"Expanding the save panel by default"
defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true
defaults write NSGlobalDomain PMPrintingExpandedStateForPrint -bool true
defaults write NSGlobalDomain PMPrintingExpandedStateForPrint2 -bool true
#"Automatically quit printer app once the print jobs complete"
defaults write "Quit When Finished" -bool true
#"Saving to disk (not to iCloud) by default"
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false
#"Check for software updates daily, not just once per week"
defaults write ScheduleFrequency -int 1
#"Disable smart quotes and smart dashes as they are annoying when typing code"
defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false
defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false
#"Enabling full keyboard access for all controls (e.g. enable Tab in modal dialogs)"
defaults write NSGlobalDomain AppleKeyboardUIMode -int 3
#"Disabling press-and-hold for keys in favor of a key repeat"
defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false
#"Setting trackpad & mouse speed to a reasonable number"
defaults write -g 2
defaults write -g 2.5
#"Enabling subpixel font rendering on non-Apple LCDs"
defaults write NSGlobalDomain AppleFontSmoothing -int 2
#"Showing icons for hard drives, servers, and removable media on the desktop"
defaults write ShowExternalHardDrivesOnDesktop -bool true
#"Showing all filename extensions in Finder by default"
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
#"Disabling the warning when changing a file extension"
defaults write FXEnableExtensionChangeWarning -bool false
#"Use column view in all Finder windows by default"
defaults write FXPreferredViewStyle Clmv
#"Avoiding the creation of .DS_Store files on network volumes"
defaults write DSDontWriteNetworkStores -bool true
#"Enabling snap-to-grid for icons on the desktop and in other icon views"
/usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/
/usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/
/usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/
#"Setting the icon size of Dock items to 36 pixels for optimal size/screen-realestate"
defaults write tilesize -int 36
#"Speeding up Mission Control animations and grouping windows by application"
defaults write expose-animation-duration -float 0.1
defaults write "expose-group-by-app" -bool true
#"Setting Dock to auto-hide and removing the auto-hiding delay"
defaults write autohide -bool true
defaults write autohide-delay -float 0
defaults write autohide-time-modifier -float 0
#"Setting email addresses to copy as '' instead of 'Foo Bar <>' in"
defaults write AddressesIncludeNameOnPasteboard -bool false
#"Enabling UTF-8 ONLY in and setting the Pro theme by default"
defaults write StringEncodings -array 4
defaults write "Default Window Settings" -string "Pro"
defaults write "Startup Window Settings" -string "Pro"
#"Preventing Time Machine from prompting to use new hard drives as backup volume"
defaults write DoNotOfferNewDisksForBackup -bool true
#"Disable the sudden motion sensor as its not useful for SSDs"
sudo pmset -a sms 0
#"Speeding up wake from sleep to 24 hours from an hour"
sudo pmset -a standbydelay 86400
#"Disable annoying backswipe in Chrome"
defaults write AppleEnableSwipeNavigateWithScrolls -bool false
#"Setting screenshots location to ~/Desktop"
defaults write location -string "$HOME/Desktop"
#"Setting screenshot format to PNG"
defaults write type -string "png"
#"Hiding Safari's bookmarks bar by default"
defaults write ShowFavoritesBar -bool false
#"Hiding Safari's sidebar in Top Sites"
defaults write ShowSidebarInTopSites -bool false
#"Disabling Safari's thumbnail cache for History and Top Sites"
defaults write DebugSnapshotsUpdatePolicy -int 2
#"Enabling Safari's debug menu"
defaults write IncludeInternalDebugMenu -bool true
#"Making Safari's search banners default to Contains instead of Starts With"
defaults write FindOnPageMatchesWordStartsOnly -bool false
#"Removing useless icons from Safari's bookmarks bar"
defaults write ProxiesInBookmarksBar "()"
#"Allow hitting the Backspace key to go to the previous page in history"
defaults write -bool true
#"Enabling the Develop menu and the Web Inspector in Safari"
defaults write IncludeDevelopMenu -bool true
defaults write WebKitDeveloperExtrasEnabledPreferenceKey -bool true
defaults write "" -bool true
#"Adding a context menu item for showing the Web Inspector in web views"
defaults write NSGlobalDomain WebKitDeveloperExtras -bool true
#"Use `~/Downloads/Incomplete` to store incomplete downloads"
defaults write org.m0k.transmission UseIncompleteDownloadFolder -bool true
defaults write org.m0k.transmission IncompleteDownloadFolder -string "${HOME}/Downloads/Incomplete"
#"Don't prompt for confirmation before downloading"
defaults write org.m0k.transmission DownloadAsk -bool false
#"Trash original torrent files"
defaults write org.m0k.transmission DeleteOriginalTorrent -bool true
#"Hide the donate message"
defaults write org.m0k.transmission WarningDonate -bool false
#"Hide the legal disclaimer"
defaults write org.m0k.transmission WarningLegal -bool false
#"Disable 'natural' (Lion-style) scrolling"
defaults write NSGlobalDomain -bool false
# Don’t automatically rearrange Spaces based on most recent use
defaults write mru-spaces -bool false
killall Finder
echo "Done!"
#@TODO install vagrant and sites folder
Copy link

Great Job!

Copy link

gianpaj commented Feb 12, 2020

nice gist!

there's an error though:

$ brew cask cleanup
Error: Unknown Cask command: cleanup
$ brew --version
Homebrew 2.2.5
Homebrew/homebrew-core (git revision c3dc; last commit 2020-02-12)
Homebrew/homebrew-cask (git revision 31d0d6; last commit 2020-02-12)

Copy link

emmanuelstroem commented Feb 17, 2020

@bradp - very neat script - thank you 🙏

@gianpaj brew cask cleanup was deprecated - brew cleanup does it for casks too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment