Skip to content

Instantly share code, notes, and snippets.

@gsputnik
Forked from brandonb927/osx-for-hackers.sh
Created April 24, 2014 02:15
Show Gist options
  • Select an option

  • Save gsputnik/11239199 to your computer and use it in GitHub Desktop.

Select an option

Save gsputnik/11239199 to your computer and use it in GitHub Desktop.

Revisions

  1. Brandon Brown renamed this gist Mar 29, 2014. 1 changed file with 7 additions and 5 deletions.
    12 changes: 7 additions & 5 deletions gistfile1.sh → osx-for-hackers.sh
    Original file line number Diff line number Diff line change
    @@ -26,10 +26,12 @@ echo ""

    echo ""
    echo "Setting your computer name (as done via System Preferences → Sharing)"
    scutil --set ComputerName 'ComputerName'
    scutil --set HostName 'ComputerName'
    scutil --set LocalHostName 'ComputerName'
    sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string 'ComputerName'
    echo "What would you like it to be?"
    read COMPUTER_NAME
    sudo scutil --set ComputerName $COMPUTER_NAME
    sudo scutil --set HostName $COMPUTER_NAME
    sudo scutil --set LocalHostName $COMPUTER_NAME
    sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string $COMPUTER_NAME

    echo ""
    echo "Hiding the useless menubar icons?"
    @@ -412,4 +414,4 @@ echo ""
    find ~/Library/Application\ Support/Dock -name "*.db" -maxdepth 1 -delete
    for app in Finder Dock Mail Safari iTunes iCal Address\ Book SystemUIServer; do
    killall "$app" > /dev/null 2>&1
    done
    done
  2. Brandon Brown revised this gist Jan 29, 2014. 1 changed file with 5 additions and 1 deletion.
    6 changes: 5 additions & 1 deletion gistfile1.sh
    Original file line number Diff line number Diff line change
    @@ -263,7 +263,7 @@ defaults write com.apple.dock no-glass -boolean YES

    echo ""
    echo "Pinning the Dock to the left side of the screen for most efficient use of screen realestate"
    defaults write com.apple.dock pinning -string "end"
    #defaults write com.apple.dock pinning -string "end"


    ###############################################################################
    @@ -371,11 +371,15 @@ select yn in "Yes" "No"; do
    echo ""
    echo "Setting Git to use Sublime Text 2 as default editor"
    git config --global core.editor "subl -n -w"
    echo ""
    echo "Removing Mission Control as it interferes with Sublime Text keyboard shortcut for selecting multiple lines"
    defaults write com.apple.dock mcx-expose-disabled -bool TRUE
    break;;
    No ) break;;
    esac
    done


    ###############################################################################
    # Git #
    ###############################################################################
  3. Brandon Brown revised this gist Jan 27, 2014. No changes.
  4. @brandonb927 brandonb927 revised this gist Sep 12, 2013. 1 changed file with 5 additions and 0 deletions.
    5 changes: 5 additions & 0 deletions gistfile1.sh
    Original file line number Diff line number Diff line change
    @@ -237,6 +237,11 @@ defaults write com.apple.finder EmptyTrashSecurely -bool true
    # Dock & Mission Control
    ###############################################################################

    # Wipe all (default) app icons from the Dock
    # This is only really useful when setting up a new Mac, or if you don’t use
    # the Dock to launch apps.
    #defaults write com.apple.dock persistent-apps -array

    echo ""
    echo "Setting the icon size of Dock items to 36 pixels for optimal size/screen-realestate"
    defaults write com.apple.dock tilesize -int 36
  5. @brandonb927 brandonb927 revised this gist Sep 12, 2013. 1 changed file with 87 additions and 178 deletions.
    265 changes: 87 additions & 178 deletions gistfile1.sh
    Original file line number Diff line number Diff line change
    @@ -1,21 +1,13 @@
    # root check
    if [[ $EUID -ne 0 ]]; then
    echo ""
    echo "################################"
    echo "## YOU ARE NOT RUNNING AS ROOT #"
    echo "################################"
    echo ""
    echo "USAGE: sudo $0"
    exit
    fi
    #!/usr/bin/env bash

    # Some things taken from here
    # https://github.com/mathiasbynens/dotfiles/blob/master/.osx

    # select yn in "Yes" "No"; do
    # case $yn in
    # Yes )
    # break;;
    # No ) break;;
    # esac
    # done
    # Ask for the administrator password upfront
    sudo -v

    # Keep-alive: update existing `sudo` time stamp until `.osx` has finished
    while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &

    echo ""
    echo "#####################################"
    @@ -33,40 +25,21 @@ echo ""
    ###############################################################################

    echo ""
    echo "Want to set the computer name? (as done via System Preferences → Sharing)"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) echo 'What is your computer name going to be? '
    read comp_name
    scutil --set ComputerName $comp_name
    scutil --set HostName $comp_name
    scutil --set LocalHostName $comp_name
    break;;
    No ) break;;
    esac
    done
    echo "Setting your computer name (as done via System Preferences → Sharing)"
    scutil --set ComputerName 'ComputerName'
    scutil --set HostName 'ComputerName'
    scutil --set LocalHostName 'ComputerName'
    sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string 'ComputerName'

    echo ""
    echo "Hide the useless menubar icons?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.systemuiserver menuExtras -array "/System/Library/CoreServices/Menu Extras/Bluetooth.menu" "/System/Library/CoreServices/Menu Extras/AirPort.menu" "/System/Library/CoreServices/Menu Extras/Battery.menu" "/System/Library/CoreServices/Menu Extras/Clock.menu"
    sudo chmod 600 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search
    break;;
    No ) break;;
    esac
    done
    echo "Hiding the useless menubar icons?"
    defaults write com.apple.systemuiserver menuExtras -array "/System/Library/CoreServices/Menu Extras/Bluetooth.menu" "/System/Library/CoreServices/Menu Extras/AirPort.menu" "/System/Library/CoreServices/Menu Extras/Battery.menu" "/System/Library/CoreServices/Menu Extras/Clock.menu"
    sudo chmod 600 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search

    echo ""
    echo "Disable OS X Gate Keeper?"
    echo "Disabling OS X Gate Keeper"
    echo "(You'll be able to install any app you want from here on, not just Mac App Store apps)"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) sudo spctl --master-disable
    break;;
    No ) break;;
    esac
    done
    sudo spctl --master-disable

    echo ""
    echo "Increasing the window resize speed for Cocoa applications whether you like it or not"
    @@ -77,64 +50,76 @@ echo "Expanding the save panel by default"
    defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true

    echo ""
    echo "Disable the 'Are you sure you want to open this application?' dialog"
    echo "Disabling the 'Are you sure you want to open this application from the Internet?' dialog"
    defaults write com.apple.LaunchServices LSQuarantine -bool false

    # Display ASCII control characters using caret notation in standard text views
    # Try e.g. `cd /tmp; unidecode "\x{0000}" > cc.txt; open -e cc.txt`
    echo ""
    echo "Do some ASCII shit"
    echo "Displaying ASCII control characters using caret notation in standard text views"
    defaults write NSGlobalDomain NSTextShowsControlCharacters -bool true

    # Disable Resume system-wide
    echo ""
    echo "Do you want to disable the stupid system-wide resume?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) echo "Yay, you made the right choice! Disabling system-wide resume"
    defaults write NSGlobalDomain NSQuitAlwaysKeepsWindows -bool false
    break;;
    No ) break;;
    esac
    done
    echo "Disabling system-wide resume"
    defaults write NSGlobalDomain NSQuitAlwaysKeepsWindows -bool false

    # Disable automatic termination of inactive apps
    echo ""
    echo "OSX Y U TERMINATE INACTIVE APPS? DO NOT DO THAT"
    echo "Disabling automatic termination of inactive apps"
    defaults write NSGlobalDomain NSDisableAutomaticTermination -bool true

    echo ""
    echo "Saving to disk (not to iCloud) by default"
    defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false

    echo ""
    echo "Reveal IP address, hostname, OS version, etc. when clicking the clock in the login window"
    sudo defaults write /Library/Preferences/com.apple.loginwindow AdminHostInfo HostName

    echo ""
    echo "Never go into computer sleep mode"
    systemsetup -setcomputersleep Off > /dev/null

    echo ""
    echo "Check for software updates daily, not just once per week"
    defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1

    ###############################################################################
    # Trackpad, mouse, keyboard, Bluetooth accessories, and input #
    ###############################################################################

    echo ""
    echo "Increasing sound quality for Bluetooth headphones/headsets, because duhhhhh"
    echo "Increasing sound quality for Bluetooth headphones/headsets"
    defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" -int 40

    echo ""
    echo "Why is this not default anymore?! Enabling full keyboard access for all controls (e.g. enable Tab in modal dialogs)"
    echo "Enabling full keyboard access for all controls (e.g. enable Tab in modal dialogs)"
    defaults write NSGlobalDomain AppleKeyboardUIMode -int 3

    echo ""
    echo "Disabling press-and-hold for keys in favor of key repeat and setting a blazingly fast keyboard repeat rate (ain't nobody got time fo special chars while coding!)"
    echo "Disabling press-and-hold for keys in favor of key repeat "
    defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false

    echo ""
    echo "Setting a blazingly fast keyboard repeat rate (ain't nobody got time fo special chars while coding!)"
    defaults write NSGlobalDomain KeyRepeat -int 0

    echo ""
    echo "Disabling auto-correct"
    defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false

    echo ""
    echo "Set trackpad & mouse speed to a reasonable number"
    defaults write -g com.apple.trackpad.scaling 2
    echo "Setting trackpad & mouse speed to a reasonable number"
    defaults write -g com.apple.trackpad.sca ng 2
    defaults write -g com.apple.mouse.scaling 2.5

    echo ""
    echo "Turn off keyboard illumination when computer is not used for 5 minutes"
    defaults write com.apple.BezelServices kDimTime -int 300

    ###############################################################################
    # Screen #
    ###############################################################################

    echo ""
    echo "I'm in yer computer, hax0ring yr passwords!"
    echo "Requiring password immediately after sleep or screen saver begins"
    defaults write com.apple.screensaver askForPassword -int 1
    defaults write com.apple.screensaver askForPasswordDelay -int 0
    @@ -154,7 +139,7 @@ else
    fi

    echo ""
    echo "What format should screenshots be saved as? (options: BMP, GIF, JPG, PDF, TIFF) "
    echo "What format should screenshots be saved as? (hit ENTER for PNG, options: BMP, GIF, JPG, PDF, TIFF) "
    read screenshot_format
    if [ -z "$1" ]
    then
    @@ -176,14 +161,8 @@ defaults write NSGlobalDomain AppleFontSmoothing -int 2
    ###############################################################################

    echo ""
    echo "Show icons for hard drives, servers, and removable media on the desktop?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true
    break;;
    No ) break;;
    esac
    done
    echo "Showing icons for hard drives, servers, and removable media on the desktop"
    defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true

    echo ""
    echo "Finder: show hidden files by default?"
    @@ -196,7 +175,7 @@ select yn in "Yes" "No"; do
    done

    echo ""
    echo "Show dotfiles in Finder?"
    echo "Finder: show dotfiles?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder AppleShowAllFiles TRUE
    @@ -206,110 +185,53 @@ select yn in "Yes" "No"; do
    done

    echo ""
    echo "Finder: show all filename extensions?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write NSGlobalDomain AppleShowAllExtensions -bool true
    break;;
    No ) break;;
    esac
    done
    echo "Finder: showing all filename extensions"
    defaults write NSGlobalDomain AppleShowAllExtensions -bool true

    echo ""
    echo "Finder: show status bar?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder ShowStatusBar -bool true
    break;;
    No ) break;;
    esac
    done
    echo "Finder: showing status bar"
    defaults write com.apple.finder ShowStatusBar -bool true

    echo ""
    echo "Finder: allow text selection in Quick Look/Preview?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder QLEnableTextSelection -bool true
    break;;
    No ) break;;
    esac
    done
    echo "Finder: show path bar"
    defaults write com.apple.finder ShowPathbar -bool true

    echo ""
    echo "Display full POSIX path as Finder window title?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder _FXShowPosixPathInTitle -bool true
    break;;
    No ) break;;
    esac
    done
    echo "Finder: allowing text selection in Quick Look/Preview"
    defaults write com.apple.finder QLEnableTextSelection -bool true

    echo ""
    echo "Disable the warning when changing a file extension?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
    break;;
    No ) break;;
    esac
    done
    echo "Displaying full POSIX path as Finder window title?"
    defaults write com.apple.finder _FXShowPosixPathInTitle -bool true

    echo ""
    echo "Avoiding creating stupid .DS_Store files on network volumes"
    defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
    echo "Disabling the warning when changing a file extension"
    defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false

    echo ""
    echo "Disable disk image verification?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) 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
    break;;
    No ) break;;
    esac
    done
    echo "Use column view in all Finder windows by default"
    defaults write com.apple.finder FXPreferredViewStyle -string "clmv"

    echo ""
    echo "Automatically open a new Finder window when a volume is mounted?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) 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
    break;;
    No ) break;;
    esac
    done
    echo "Avoiding creating stupid .DS_Store files on network volumes"
    defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

    echo ""
    echo "Disabling 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

    echo ""
    echo "Enable snap-to-grid for icons on the desktop and in other icon views?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) /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
    break;;
    No ) break;;
    esac
    done
    /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

    echo ""
    echo "Setting Trash to empty securely by default"
    defaults write com.apple.finder EmptyTrashSecurely -bool true

    echo ""
    echo "Show the ~/Library folder?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) chflags nohidden ~/Library
    break;;
    No ) break;;
    esac
    done



    ###############################################################################
    # Dock & Mission Control
    @@ -338,15 +260,6 @@ echo ""
    echo "Pinning the Dock to the left side of the screen for most efficient use of screen realestate"
    defaults write com.apple.dock pinning -string "end"

    echo ""
    echo "Reset Launchpad?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) find ~/Library/Application\ Support/Dock -name "*.db" -maxdepth 1 -delete
    break;;
    No ) break;;
    esac
    done

    ###############################################################################
    # Safari & WebKit #
    @@ -427,24 +340,18 @@ hash tmutil &> /dev/null && sudo tmutil disablelocal
    ###############################################################################
    echo ""
    echo "Deleting space hogging sleep image and disabling"
    rm /private/var/vm/sleepimage
    pmset -a hibernatemode 0
    sudo rm /private/var/vm/sleepimage
    sudo pmset -a hibernatemode 0

    echo ""
    echo "Speed up wake from sleep to 24 hours from an hour"
    # http://www.cultofmac.com/221392/quick-hack-speeds-up-retina-macbooks-wake-from-sleep-os-x-tips/
    pmset -a standbydelay 86400

    echo ""
    echo "Disable OS X logging of downloaded files? (highly advised)"
    echo "Disabling OS X logging of downloaded files"
    echo "For more info visit http://www.macgasm.net/2013/01/18/good-morning-your-mac-keeps-a-log-of-all-your-downloads/"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.LaunchServices LSQuarantine -bool NO
    break;;
    No ) break;;
    esac
    done
    defaults write com.apple.LaunchServices LSQuarantine -bool NO

    ###############################################################################
    # Sublime Text 2 #
    @@ -492,6 +399,8 @@ echo ""
    echo "Note that some of these changes require a logout/restart to take effect."
    echo "Killing some open applications in order to take effect."
    echo ""

    find ~/Library/Application\ Support/Dock -name "*.db" -maxdepth 1 -delete
    for app in Finder Dock Mail Safari iTunes iCal Address\ Book SystemUIServer; do
    killall "$app" > /dev/null 2>&1
    done
  6. @brandonb927 brandonb927 revised this gist Sep 10, 2013. 1 changed file with 1 addition and 8 deletions.
    9 changes: 1 addition & 8 deletions gistfile1.sh
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,3 @@
    # ~/.osx — http://mths.be/osx

    # root check
    if [[ $EUID -ne 0 ]]; then
    echo ""
    @@ -105,11 +103,6 @@ echo ""
    echo "OSX Y U TERMINATE INACTIVE APPS? DO NOT DO THAT"
    defaults write NSGlobalDomain NSDisableAutomaticTermination -bool true

    echo ""
    echo "Remove the Guest account"
    defaults write /Library/Preferences/com.apple.AppleFileServer guestAccess -bool NO
    defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server AllowGuestAccess -bool NO

    ###############################################################################
    # Trackpad, mouse, keyboard, Bluetooth accessories, and input #
    ###############################################################################
    @@ -133,7 +126,7 @@ defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false

    echo ""
    echo "Set trackpad & mouse speed to a reasonable number"
    defaults write -g com.apple.mouse.scaling 2
    defaults write -g com.apple.trackpad.scaling 2
    defaults write -g com.apple.mouse.scaling 2.5

    ###############################################################################
  7. @brandonb927 brandonb927 revised this gist Sep 10, 2013. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.sh
    Original file line number Diff line number Diff line change
    @@ -312,7 +312,7 @@ select yn in "Yes" "No"; do
    case $yn in
    Yes ) chflags nohidden ~/Library
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

  8. @brandonb927 brandonb927 revised this gist Sep 10, 2013. 1 changed file with 35 additions and 12 deletions.
    47 changes: 35 additions & 12 deletions gistfile1.sh
    Original file line number Diff line number Diff line change
    @@ -48,11 +48,8 @@ select yn in "Yes" "No"; do
    esac
    done

    # Menu bar, hide icons for:
    # - Time Machine
    # - Volume
    echo ""
    echo "Hide the useless Time Machine, Volume, Bluetooth and Spotlight icons? "
    echo "Hide the useless menubar icons?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.systemuiserver menuExtras -array "/System/Library/CoreServices/Menu Extras/Bluetooth.menu" "/System/Library/CoreServices/Menu Extras/AirPort.menu" "/System/Library/CoreServices/Menu Extras/Battery.menu" "/System/Library/CoreServices/Menu Extras/Clock.menu"
    @@ -61,6 +58,18 @@ select yn in "Yes" "No"; do
    No ) break;;
    esac
    done

    echo ""
    echo "Disable OS X Gate Keeper?"
    echo "(You'll be able to install any app you want from here on, not just Mac App Store apps)"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) sudo spctl --master-disable
    break;;
    No ) break;;
    esac
    done

    echo ""
    echo "Increasing the window resize speed for Cocoa applications whether you like it or not"
    defaults write NSGlobalDomain NSWindowResizeTime -float 0.001
    @@ -96,6 +105,11 @@ echo ""
    echo "OSX Y U TERMINATE INACTIVE APPS? DO NOT DO THAT"
    defaults write NSGlobalDomain NSDisableAutomaticTermination -bool true

    echo ""
    echo "Remove the Guest account"
    defaults write /Library/Preferences/com.apple.AppleFileServer guestAccess -bool NO
    defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server AllowGuestAccess -bool NO

    ###############################################################################
    # Trackpad, mouse, keyboard, Bluetooth accessories, and input #
    ###############################################################################
    @@ -117,6 +131,11 @@ echo ""
    echo "Disabling auto-correct"
    defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false

    echo ""
    echo "Set trackpad & mouse speed to a reasonable number"
    defaults write -g com.apple.mouse.scaling 2
    defaults write -g com.apple.mouse.scaling 2.5

    ###############################################################################
    # Screen #
    ###############################################################################
    @@ -300,7 +319,7 @@ done


    ###############################################################################
    # Dock & hot corners #
    # Dock & Mission Control
    ###############################################################################

    echo ""
    @@ -315,12 +334,16 @@ defaults write com.apple.dock "expose-group-by-app" -bool true
    echo ""
    echo "Setting Dock to auto-hide and removing the auto-hiding delay"
    defaults write com.apple.dock autohide -bool true
    defaults write com.apple.Dock autohide-delay -float 0
    defaults write com.apple.dock autohide-delay -float 0
    defaults write com.apple.dock autohide-time-modifier -float 0

    echo ""
    echo "Enabling iTunes track notifications in the Dock"
    defaults write com.apple.dock itunes-notifications -bool true
    echo "Setting Dock to 2D mode"
    defaults write com.apple.dock no-glass -boolean YES

    echo ""
    echo "Pinning the Dock to the left side of the screen for most efficient use of screen realestate"
    defaults write com.apple.dock pinning -string "end"

    echo ""
    echo "Reset Launchpad?"
    @@ -363,12 +386,12 @@ echo "Adding a context menu item for showing the Web Inspector in web views"
    defaults write NSGlobalDomain WebKitDeveloperExtras -bool true

    ###############################################################################
    # Address Book, Dashboard, iCal, iTunes, Mail, and Disk Utility #
    # Address Book and iTunes #
    ###############################################################################

    echo ""
    echo "Enabling Dashboard dev mode (allows keeping widgets on the desktop)"
    defaults write com.apple.dashboard devmode -bool true
    echo "Enabling iTunes track notifications in the Dock"
    defaults write com.apple.dock itunes-notifications -bool true

    echo ""
    echo "Copy email addresses as '[email protected]' instead of 'Foo Bar <[email protected]>' in Mail.app?"
    @@ -476,6 +499,6 @@ echo ""
    echo "Note that some of these changes require a logout/restart to take effect."
    echo "Killing some open applications in order to take effect."
    echo ""
    for app in Finder Dock Mail Safari iTunes iCal Address\ Book SystemUIServer Twitter; do
    for app in Finder Dock Mail Safari iTunes iCal Address\ Book SystemUIServer; do
    killall "$app" > /dev/null 2>&1
    done
  9. @brandonb927 brandonb927 revised this gist Sep 7, 2013. 1 changed file with 102 additions and 36 deletions.
    138 changes: 102 additions & 36 deletions gistfile1.sh
    Original file line number Diff line number Diff line change
    @@ -2,30 +2,39 @@

    # root check
    if [[ $EUID -ne 0 ]]; then
    echo "################################";
    echo "## YOU ARE NOT RUNNING AS ROOT #";
    echo "################################";
    echo "#";
    echo "# USAGE: sudo $0";
    exit;
    echo ""
    echo "################################"
    echo "## YOU ARE NOT RUNNING AS ROOT #"
    echo "################################"
    echo ""
    echo "USAGE: sudo $0"
    exit
    fi

    # select yn in "Yes" "No"; do
    # case $yn in
    # Yes )
    # Yes )
    # break;;
    # No ) exit;;
    # No ) break;;
    # esac
    # done

    echo "This script will make your Mac awesome. Follow the prompts and you'll be fine."

    echo "Happy Hacking!"

    echo ""
    echo "#####################################"
    echo "## This script will make your Mac awesome."
    echo "## Follow the prompts and you'll be fine."
    echo "#####################################"
    echo ""
    echo ""
    echo "#####################################"
    echo "## Happy Hacking!"
    echo "#####################################"
    echo ""
    ###############################################################################
    # General UI/UX #
    ###############################################################################

    echo ""
    echo "Want to set the computer name? (as done via System Preferences → Sharing)"
    select yn in "Yes" "No"; do
    case $yn in
    @@ -35,218 +44,250 @@ select yn in "Yes" "No"; do
    scutil --set HostName $comp_name
    scutil --set LocalHostName $comp_name
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    # Menu bar, hide icons for:
    # - Time Machine
    # - Volume
    # - Volume
    echo ""
    echo "Hide the useless Time Machine, Volume, Bluetooth and Spotlight icons? "
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.systemuiserver menuExtras -array "/System/Library/CoreServices/Menu Extras/Bluetooth.menu" "/System/Library/CoreServices/Menu Extras/AirPort.menu" "/System/Library/CoreServices/Menu Extras/Battery.menu" "/System/Library/CoreServices/Menu Extras/Clock.menu"
    sudo chmod 600 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search
    break;;
    No ) exit;;
    No ) break;;
    esac
    done
    echo ""
    echo "Increasing the window resize speed for Cocoa applications whether you like it or not"
    defaults write NSGlobalDomain NSWindowResizeTime -float 0.001

    echo ""
    echo "Expanding the save panel by default"
    defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true

    echo ""
    echo "Disable the 'Are you sure you want to open this application?' dialog"
    defaults write com.apple.LaunchServices LSQuarantine -bool false

    # Display ASCII control characters using caret notation in standard text views
    # Try e.g. `cd /tmp; unidecode "\x{0000}" > cc.txt; open -e cc.txt`
    echo ""
    echo "Do some ASCII shit"
    defaults write NSGlobalDomain NSTextShowsControlCharacters -bool true

    # Disable Resume system-wide
    echo ""
    echo "Do you want to disable the stupid system-wide resume?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) echo "Yay, you made the right choice! Disabling system-wide resume"
    defaults write NSGlobalDomain NSQuitAlwaysKeepsWindows -bool false
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    # Disable automatic termination of inactive apps
    echo ""
    echo "OSX Y U TERMINATE INACTIVE APPS? DO NOT DO THAT"
    defaults write NSGlobalDomain NSDisableAutomaticTermination -bool true

    ###############################################################################
    # Trackpad, mouse, keyboard, Bluetooth accessories, and input #
    ###############################################################################

    echo ""
    echo "Increasing sound quality for Bluetooth headphones/headsets, because duhhhhh"
    defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" -int 40

    echo ""
    echo "Why is this not default anymore?! Enabling full keyboard access for all controls (e.g. enable Tab in modal dialogs)"
    defaults write NSGlobalDomain AppleKeyboardUIMode -int 3

    echo ""
    echo "Disabling press-and-hold for keys in favor of key repeat and setting a blazingly fast keyboard repeat rate (ain't nobody got time fo special chars while coding!)"
    defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false
    defaults write NSGlobalDomain KeyRepeat -int 0

    echo "I don't even... (disabling auto-correct)"
    echo ""
    echo "Disabling auto-correct"
    defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false

    ###############################################################################
    # Screen #
    ###############################################################################

    echo ""
    echo "I'm in yer computer, hax0ring yr passwords!"
    echo "Requiring password immediately after sleep or screen saver begins"
    defaults write com.apple.screensaver askForPassword -int 1
    defaults write com.apple.screensaver askForPasswordDelay -int 0

    echo ""
    echo "Where do you want screenshots to be stored? (hit ENTER if you want ~/Desktop as default)"
    read screenshot_location
    if [ -z "$1" ]
    then
    echo ""
    echo "Setting location to ~/Desktop"
    defaults write com.apple.screencapture location -string "$HOME/Desktop"
    else
    echo ""
    echo "Setting location to ~/$screenshot_location"
    defaults write com.apple.screencapture location -string "$HOME/$screenshot_location"
    fi


    echo ""
    echo "What format should screenshots be saved as? (options: BMP, GIF, JPG, PDF, TIFF) "
    read screenshot_format
    if [ -z "$1" ]
    then
    echo ""
    echo "Setting screenshot format to PNG"
    defaults write com.apple.screencapture type -string "png"
    else
    echo ""
    echo "Setting screenshot format to $screenshot_format"
    defaults write com.apple.screencapture type -string "$screenshot_format"
    fi


    echo "Enabling subpixel font rendering on non-Apple LCDs"
    defaults write NSGlobalDomain AppleFontSmoothing -int 2

    ###############################################################################
    # Finder #
    ###############################################################################

    echo ""
    echo "Show icons for hard drives, servers, and removable media on the desktop?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Finder: show hidden files by default?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.Finder AppleShowAllFiles -bool true
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Show dotfiles in Finder?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder AppleShowAllFiles TRUE
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Finder: show all filename extensions?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write NSGlobalDomain AppleShowAllExtensions -bool true
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Finder: show status bar?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder ShowStatusBar -bool true
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Finder: allow text selection in Quick Look/Preview?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder QLEnableTextSelection -bool true
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Display full POSIX path as Finder window title?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder _FXShowPosixPathInTitle -bool true
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Disable the warning when changing a file extension?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Avoiding creating stupid .DS_Store files on network volumes"
    defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

    echo ""
    echo "Disable disk image verification?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) 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
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Automatically open a new Finder window when a volume is mounted?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) 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
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Enable snap-to-grid for icons on the desktop and in other icon views?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) /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
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Setting Trash to empty securely by default"
    defaults write com.apple.finder EmptyTrashSecurely -bool true

    echo ""
    echo "Show the ~/Library folder?"
    select yn in "Yes" "No"; do
    case $yn in
    @@ -262,77 +303,92 @@ done
    # Dock & hot corners #
    ###############################################################################

    echo ""
    echo "Setting the icon size of Dock items to 36 pixels for optimal size/screen-realestate"
    defaults write com.apple.dock tilesize -int 36

    echo ""
    echo "Speeding up Mission Control animations and grouping windows by application"
    defaults write com.apple.dock expose-animation-duration -float 0.1
    defaults write com.apple.dock "expose-group-by-app" -bool true

    echo ""
    echo "Setting Dock to auto-hide and removing the auto-hiding delay"
    defaults write com.apple.dock autohide -bool true
    defaults write com.apple.Dock autohide-delay -float 0
    defaults write com.apple.dock autohide-time-modifier -float 0

    echo ""
    echo "Enabling iTunes track notifications in the Dock"
    defaults write com.apple.dock itunes-notifications -bool true

    echo ""
    echo "Reset Launchpad?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) find ~/Library/Application\ Support/Dock -name "*.db" -maxdepth 1 -delete
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    ###############################################################################
    # Safari & WebKit #
    ###############################################################################

    echo ""
    echo "Disabling Safari’s thumbnail cache for History and Top Sites"
    defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2

    echo ""
    echo "Enabling Safari’s debug menu"
    defaults write com.apple.Safari IncludeInternalDebugMenu -bool true

    echo ""
    echo "Making Safari’s search banners default to Contains instead of Starts With"
    defaults write com.apple.Safari FindOnPageMatchesWordStartsOnly -bool false

    echo ""
    echo "Removing useless icons from Safari’s bookmarks bar"
    defaults write com.apple.Safari ProxiesInBookmarksBar "()"

    echo ""
    echo "Enabling 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

    echo ""
    echo "Adding a context menu item for showing the Web Inspector in web views"
    defaults write NSGlobalDomain WebKitDeveloperExtras -bool true

    ###############################################################################
    # Address Book, Dashboard, iCal, iTunes, Mail, and Disk Utility #
    ###############################################################################

    echo ""
    echo "Enabling Dashboard dev mode (allows keeping widgets on the desktop)"
    defaults write com.apple.dashboard devmode -bool true

    echo ""
    echo "Copy email addresses as '[email protected]' instead of 'Foo Bar <[email protected]>' in Mail.app?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.mail AddressesIncludeNameOnPasteboard -bool false
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Enabling the debug menu in Disk Utility"
    defaults write com.apple.DiskUtility DUDebugMenuEnabled -bool true

    ###############################################################################
    # Terminal #
    ###############################################################################

    echo ""
    echo "Enabling UTF-8 ONLY in Terminal.app and setting the Pro theme by default"
    defaults write com.apple.terminal StringEncodings -array 4
    defaults write com.apple.Terminal "Default Window Settings" -string "Pro"
    @@ -342,58 +398,67 @@ defaults write com.apple.Terminal "Startup Window Settings" -string "Pro"
    # Time Machine #
    ###############################################################################

    echo ""
    echo "Preventing Time Machine from prompting to use new hard drives as backup volume"
    defaults write com.apple.TimeMachine DoNotOfferNewDisksForBackup -bool true

    echo ""
    echo "Disabling local Time Machine backups"
    hash tmutil &> /dev/null && sudo tmutil disablelocal

    ###############################################################################
    # Personal Additions #
    ###############################################################################
    echo ""
    echo "Deleting space hogging sleep image and disabling"
    rm /private/var/vm/sleepimage
    pmset -a hibernatemode 0

    echo ""
    echo "Speed up wake from sleep to 24 hours from an hour"
    # http://www.cultofmac.com/221392/quick-hack-speeds-up-retina-macbooks-wake-from-sleep-os-x-tips/
    pmset -a standbydelay 86400

    echo ""
    echo "Disable OS X logging of downloaded files? (highly advised)"
    echo "For more info visit http://www.macgasm.net/2013/01/18/good-morning-your-mac-keeps-a-log-of-all-your-downloads/"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.LaunchServices LSQuarantine -bool NO
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    ###############################################################################
    # Sublime Text 2 #
    ###############################################################################
    echo ""
    echo "Do you use Sublime Text as your editor of choice and is it installed?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) echo "Linking Sublime Text 2 command line"
    Yes ) echo ""
    echo "Linking Sublime Text 2 command line"
    ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /bin/subl
    echo ""
    echo "Setting Git to use Sublime Text 2 as default editor"
    git config --global core.editor "subl -n -w"
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    ###############################################################################
    # Git #
    ###############################################################################
    echo ""
    echo "Create a nicely formatted git log command accessible via 'git lg'?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) echo "Creating nice git log command"
    git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    @@ -410,6 +475,7 @@ echo ""
    echo ""
    echo "Note that some of these changes require a logout/restart to take effect."
    echo "Killing some open applications in order to take effect."
    echo ""
    for app in Finder Dock Mail Safari iTunes iCal Address\ Book SystemUIServer Twitter; do
    killall "$app" > /dev/null 2>&1
    done
  10. Brandon Brown revised this gist Jun 7, 2013. 1 changed file with 13 additions and 0 deletions.
    13 changes: 13 additions & 0 deletions gistfile1.sh
    Original file line number Diff line number Diff line change
    @@ -384,6 +384,19 @@ select yn in "Yes" "No"; do
    esac
    done

    ###############################################################################
    # Git #
    ###############################################################################
    echo "Create a nicely formatted git log command accessible via 'git lg'?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) echo "Creating nice git log command"
    git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
    break;;
    No ) exit;;
    esac
    done

    ###############################################################################
    # Kill affected applications #
    ###############################################################################
  11. Brandon Brown revised this gist Apr 29, 2013. 1 changed file with 4 additions and 0 deletions.
    4 changes: 4 additions & 0 deletions gistfile1.sh
    Original file line number Diff line number Diff line change
    @@ -355,6 +355,10 @@ echo "Deleting space hogging sleep image and disabling"
    rm /private/var/vm/sleepimage
    pmset -a hibernatemode 0

    echo "Speed up wake from sleep to 24 hours from an hour"
    # http://www.cultofmac.com/221392/quick-hack-speeds-up-retina-macbooks-wake-from-sleep-os-x-tips/
    pmset -a standbydelay 86400

    echo "Disable OS X logging of downloaded files? (highly advised)"
    echo "For more info visit http://www.macgasm.net/2013/01/18/good-morning-your-mac-keeps-a-log-of-all-your-downloads/"
    select yn in "Yes" "No"; do
  12. Brandon Brown revised this gist Apr 12, 2013. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.sh
    Original file line number Diff line number Diff line change
    @@ -359,7 +359,7 @@ echo "Disable OS X logging of downloaded files? (highly advised)"
    echo "For more info visit http://www.macgasm.net/2013/01/18/good-morning-your-mac-keeps-a-log-of-all-your-downloads/"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.LaunchServices LSQuarantine -bool NO.
    Yes ) defaults write com.apple.LaunchServices LSQuarantine -bool NO
    break;;
    No ) exit;;
    esac
  13. Brandon Brown revised this gist Apr 12, 2013. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions gistfile1.sh
    Original file line number Diff line number Diff line change
    @@ -384,6 +384,7 @@ done
    # Kill affected applications #
    ###############################################################################

    echo ""
    echo "Done!"
    echo ""
    echo ""
  14. Brandon Brown revised this gist Apr 12, 2013. 1 changed file with 0 additions and 455 deletions.
    455 changes: 0 additions & 455 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -1,455 +0,0 @@
    # ~/.osx — http://mths.be/osx

    # root check
    if [[ $EUID -ne 0 ]]; then
    echo "################################";
    echo "## YOU ARE NOT RUNNING AS ROOT #";
    echo "################################";
    echo "#";
    echo "# USAGE: sudo $0";
    break;
    fi

    # select yn in "Yes" "No"; do
    # case $yn in
    # Yes )
    # break;;
    # No ) break;;
    # esac
    # done
    echo "###############################################################################"
    echo ""
    echo "This script will make your Mac awesome. Follow the prompts and you'll be fine."
    echo ""
    echo "Happy Hacking!"
    echo ""
    echo "###############################################################################"
    echo ""
    echo ""

    ###############################################################################
    # General UI/UX #
    ###############################################################################
    echo ""
    echo "Want to set the computer name? (as done via System Preferences → Sharing)"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) echo 'What is your computer name going to be? '
    read comp_name
    scutil --set ComputerName $comp_name
    scutil --set HostName $comp_name
    scutil --set LocalHostName $comp_name
    break;;
    No ) break;;
    esac
    done

    # Menu bar, hide icons for:
    # - Time Machine
    # - Volume
    echo ""
    echo "Hide the useless User, Time Machine, Volume, Bluetooth and Spotlight icons? "
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.systemuiserver menuExtras -array "/System/Library/CoreServices/Menu Extras/Bluetooth.menu" "/System/Library/CoreServices/Menu Extras/AirPort.menu" "/System/Library/CoreServices/Menu Extras/Battery.menu" "/System/Library/CoreServices/Menu Extras/Clock.menu"
    sudo chmod 600 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search
    break;;
    No ) break;;
    esac
    done

    echo ""
    echo "Increasing the window resize speed for Cocoa applications whether you like it or not"
    defaults write NSGlobalDomain NSWindowResizeTime -float 0.001

    echo ""
    echo "Expanding the save panel by default"
    defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true

    echo ""
    echo "Disable the 'Are you sure you want to open this application?' dialog"
    defaults write com.apple.LaunchServices LSQuarantine -bool false

    # Display ASCII control characters using caret notation in standard text views
    # Try e.g. `cd /tmp; unidecode "\x{0000}" > cc.txt; open -e cc.txt`
    echo ""
    echo "Doing some ASCII shit"
    defaults write NSGlobalDomain NSTextShowsControlCharacters -bool true

    # Disable Resume system-wide
    echo ""
    echo "Do you want to disable the stupid system-wide resume?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) echo "Yay, you made the right choice! Disabling system-wide resume"
    defaults write NSGlobalDomain NSQuitAlwaysKeepsWindows -bool false
    break;;
    No ) break;;
    esac
    done

    # Disable automatic termination of inactive apps
    echo ""
    echo "OSX Y U TERMINATE INACTIVE APPS? DO NOT DO THAT"
    defaults write NSGlobalDomain NSDisableAutomaticTermination -bool true

    ###############################################################################
    # Trackpad, mouse, keyboard, Bluetooth accessories, and input #
    ###############################################################################

    echo ""
    echo "Increasing sound quality for Bluetooth headphones/headsets, because duhhhhh"
    defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" -int 40

    echo ""
    echo "Why is this not default anymore?! Enabling full keyboard access for all controls (e.g. enable Tab in modal dialogs)"
    defaults write NSGlobalDomain AppleKeyboardUIMode -int 3

    echo ""
    echo "Disabling press-and-hold for keys in favor of key repeat and setting a blazingly fast keyboard repeat rate (ain't nobody got time fo special chars while coding!)"
    defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false
    defaults write NSGlobalDomain KeyRepeat -int 0

    echo ""
    echo "I don't even... (disabling auto-correct)"
    defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false

    ###############################################################################
    # Screen #
    ###############################################################################

    echo ""
    echo "I'm in yer computer, hax0ring yr passwords!"
    echo "Requiring password immediately after sleep or screen saver begins"
    defaults write com.apple.screensaver askForPassword -int 1
    defaults write com.apple.screensaver askForPasswordDelay -int 0

    echo ""
    echo "Where do you want screenshots to be stored? (hit ENTER if you want ~/Desktop as default)"
    read screenshot_location
    if [ -z "$1" ]
    then
    echo "Setting location to ~/Desktop"
    defaults write com.apple.screencapture location -string "$HOME/Desktop"
    else
    echo "Setting location to ~/$screenshot_location"
    defaults write com.apple.screencapture location -string "$HOME/$screenshot_location"
    fi

    echo ""
    echo "What format should screenshots be saved as? (default PNG, options: BMP, GIF, JPG, PDF, TIFF) "
    read screenshot_format
    if [ -z "$1" ]
    then
    echo "Setting screenshot format to PNG"
    defaults write com.apple.screencapture type -string "png"
    else
    echo "Setting screenshot format to $screenshot_format"
    defaults write com.apple.screencapture type -string "$screenshot_format"
    fi

    echo ""
    echo "Enabling subpixel font rendering on non-Apple LCDs"
    defaults write NSGlobalDomain AppleFontSmoothing -int 2

    ###############################################################################
    # Finder #
    ###############################################################################

    echo ""
    echo "Show icons for hard drives, servers, and removable media on the desktop?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true
    break;;
    No ) break;;
    esac
    done

    echo ""
    echo "Finder: show hidden files by default?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.Finder AppleShowAllFiles -bool true
    break;;
    No ) break;;
    esac
    done

    echo ""
    echo "Show dotfiles in Finder?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder AppleShowAllFiles TRUE
    break;;
    No ) break;;
    esac
    done

    echo ""
    echo "Finder: show all filename extensions?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write NSGlobalDomain AppleShowAllExtensions -bool true
    break;;
    No ) break;;
    esac
    done

    echo ""
    echo "Finder: show status bar?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder ShowStatusBar -bool true
    break;;
    No ) break;;
    esac
    done

    echo ""
    echo "Finder: allow text selection in Quick Look/Preview?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder QLEnableTextSelection -bool true
    break;;
    No ) break;;
    esac
    done

    echo ""
    echo "Display full POSIX path as Finder window title?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder _FXShowPosixPathInTitle -bool true
    break;;
    No ) break;;
    esac
    done

    echo ""
    echo "Disable the warning when changing a file extension?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
    break;;
    No ) break;;
    esac
    done

    echo ""
    echo "Avoiding creating stupid .DS_Store files on network volumes"
    defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

    echo ""
    echo "Disable disk image verification?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) 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
    break;;
    No ) break;;
    esac
    done

    echo ""
    echo "Automatically open a new Finder window when a volume is mounted?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) 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
    break;;
    No ) break;;
    esac
    done

    echo ""
    echo "Enable snap-to-grid for icons on the desktop and in other icon views?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) /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
    break;;
    No ) break;;
    esac
    done

    echo ""
    echo "Setting Trash to empty securely by default"
    defaults write com.apple.finder EmptyTrashSecurely -bool true

    echo ""
    echo "Show the ~/Library folder?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) chflags nohidden ~/Library
    break;;
    No ) break;;
    esac
    done



    ###############################################################################
    # Dock & hot corners #
    ###############################################################################

    echo ""
    echo "Setting the icon size of Dock items to 36 pixels for optimal size/screen-realestate"
    defaults write com.apple.dock tilesize -int 36

    echo ""
    echo "Speeding up Mission Control animations and grouping windows by application"
    defaults write com.apple.dock expose-animation-duration -float 0.1
    defaults write com.apple.dock "expose-group-by-app" -bool true

    echo ""
    echo "Setting Dock to auto-hide and removing the auto-hiding delay"
    defaults write com.apple.dock autohide -bool true
    defaults write com.apple.Dock autohide-delay -float 0
    defaults write com.apple.dock autohide-time-modifier -float 0

    echo ""
    echo "Enabling iTunes track notifications in the Dock"
    defaults write com.apple.dock itunes-notifications -bool true

    echo ""
    echo "Reset Launchpad?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) find ~/Library/Application\ Support/Dock -name "*.db" -maxdepth 1 -delete
    break;;
    No ) break;;
    esac
    done

    ###############################################################################
    # Safari & WebKit #
    ###############################################################################

    echo ""
    echo "Disabling Safari’s thumbnail cache for History and Top Sites"
    defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2

    echo ""
    echo "Enabling Safari’s debug menu"
    defaults write com.apple.Safari IncludeInternalDebugMenu -bool true

    echo ""
    echo "Making Safari’s search banners default to Contains instead of Starts With"
    defaults write com.apple.Safari FindOnPageMatchesWordStartsOnly -bool false

    echo ""
    echo "Removing useless icons from Safari’s bookmarks bar"
    defaults write com.apple.Safari ProxiesInBookmarksBar "()"

    echo ""
    echo "Enabling 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

    echo ""
    echo "Adding a context menu item for showing the Web Inspector in web views"
    defaults write NSGlobalDomain WebKitDeveloperExtras -bool true

    ###############################################################################
    # Address Book, Dashboard, iCal, iTunes, Mail, and Disk Utility #
    ###############################################################################

    echo ""
    echo "Enabling Dashboard dev mode (allows keeping widgets on the desktop)"
    defaults write com.apple.dashboard devmode -bool true

    echo ""
    echo "Copy email addresses as '[email protected]' instead of 'Foo Bar <[email protected]>' in Mail.app?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.mail AddressesIncludeNameOnPasteboard -bool false
    break;;
    No ) break;;
    esac
    done

    echo ""
    echo "Enabling the debug menu in Disk Utility"
    defaults write com.apple.DiskUtility DUDebugMenuEnabled -bool true

    ###############################################################################
    # Terminal #
    ###############################################################################

    echo ""
    echo "Enabling UTF-8 ONLY in Terminal.app and setting the Pro theme by default"
    defaults write com.apple.terminal StringEncodings -array 4
    defaults write com.apple.Terminal "Default Window Settings" -string "Pro"
    defaults write com.apple.Terminal "Startup Window Settings" -string "Pro"

    ###############################################################################
    # Time Machine #
    ###############################################################################

    echo ""
    echo "Preventing Time Machine from prompting to use new hard drives as backup volume"
    defaults write com.apple.TimeMachine DoNotOfferNewDisksForBackup -bool true

    echo ""
    echo "Disabling local Time Machine backups"
    hash tmutil &> /dev/null && sudo tmutil disablelocal

    ###############################################################################
    # Personal Additions #
    ###############################################################################

    echo ""
    echo "Deleting space hogging sleep image and disabling"
    rm /private/var/vm/sleepimage
    pmset -a hibernatemode 0

    echo ""
    echo "Disable OS X logging of downloaded files? (highly advised)"
    echo "For more info visit http://www.macgasm.net/2013/01/18/good-morning-your-mac-keeps-a-log-of-all-your-downloads/"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.LaunchServices LSQuarantine -bool NO
    break;;
    No ) break;;
    esac
    done

    ###############################################################################
    # Sublime Text 2 #
    ###############################################################################

    echo ""
    echo "Do you use Sublime Text as your editor of choice and is it installed?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) echo "Linking Sublime Text 2 command line"
    ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /bin/subl
    echo "Setting Git to use Sublime Text 2 as default editor"
    git config --global core.editor "subl -n -w"
    break;;
    No ) break;;
    esac
    done

    ###############################################################################
    # Kill affected applications #
    ###############################################################################

    echo ""
    echo "###############################################################################"
    echo ""
    echo "DONE!"
    echo ""
    echo "###############################################################################"
    echo ""
    echo ""
    echo "Note that some of these changes require a logout/restart to take effect."
    echo "Killing some open applications in order to take effect."
    for app in Finder Dock Mail Safari iTunes iCal Address\ Book SystemUIServer Twitter; do
    killall "$app" > /dev/null 2>&1
    done
  15. Brandon Brown revised this gist Apr 12, 2013. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -48,7 +48,7 @@ done
    # - Time Machine
    # - Volume
    echo ""
    echo "Hide the useless Time Machine, Volume, Bluetooth and Spotlight icons? "
    echo "Hide the useless User, Time Machine, Volume, Bluetooth and Spotlight icons? "
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.systemuiserver menuExtras -array "/System/Library/CoreServices/Menu Extras/Bluetooth.menu" "/System/Library/CoreServices/Menu Extras/AirPort.menu" "/System/Library/CoreServices/Menu Extras/Battery.menu" "/System/Library/CoreServices/Menu Extras/Clock.menu"
  16. Brandon Brown revised this gist Apr 12, 2013. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -440,6 +440,7 @@ done
    # Kill affected applications #
    ###############################################################################

    echo ""
    echo "###############################################################################"
    echo ""
    echo "DONE!"
  17. Brandon Brown revised this gist Apr 12, 2013. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -413,7 +413,7 @@ echo "Disable OS X logging of downloaded files? (highly advised)"
    echo "For more info visit http://www.macgasm.net/2013/01/18/good-morning-your-mac-keeps-a-log-of-all-your-downloads/"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.LaunchServices LSQuarantine -bool NO.
    Yes ) defaults write com.apple.LaunchServices LSQuarantine -bool NO
    break;;
    No ) break;;
    esac
  18. Brandon Brown revised this gist Apr 12, 2013. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -73,7 +73,7 @@ defaults write com.apple.LaunchServices LSQuarantine -bool false
    # Display ASCII control characters using caret notation in standard text views
    # Try e.g. `cd /tmp; unidecode "\x{0000}" > cc.txt; open -e cc.txt`
    echo ""
    echo "Do some ASCII shit"
    echo "Doing some ASCII shit"
    defaults write NSGlobalDomain NSTextShowsControlCharacters -bool true

    # Disable Resume system-wide
    @@ -137,7 +137,7 @@ else
    fi

    echo ""
    echo "What format should screenshots be saved as? (options: BMP, GIF, JPG, PDF, TIFF) "
    echo "What format should screenshots be saved as? (default PNG, options: BMP, GIF, JPG, PDF, TIFF) "
    read screenshot_format
    if [ -z "$1" ]
    then
  19. Brandon Brown revised this gist Apr 12, 2013. No changes.
  20. Brandon Brown revised this gist Apr 12, 2013. 1 changed file with 79 additions and 27 deletions.
    106 changes: 79 additions & 27 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -7,14 +7,14 @@ if [[ $EUID -ne 0 ]]; then
    echo "################################";
    echo "#";
    echo "# USAGE: sudo $0";
    exit;
    break;
    fi

    # select yn in "Yes" "No"; do
    # case $yn in
    # Yes )
    # Yes )
    # break;;
    # No ) exit;;
    # No ) break;;
    # esac
    # done
    echo "###############################################################################"
    @@ -30,7 +30,7 @@ echo ""
    ###############################################################################
    # General UI/UX #
    ###############################################################################

    echo ""
    echo "Want to set the computer name? (as done via System Preferences → Sharing)"
    select yn in "Yes" "No"; do
    case $yn in
    @@ -40,77 +40,91 @@ select yn in "Yes" "No"; do
    scutil --set HostName $comp_name
    scutil --set LocalHostName $comp_name
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    # Menu bar, hide icons for:
    # - Time Machine
    # - Volume
    # - Volume
    echo ""
    echo "Hide the useless Time Machine, Volume, Bluetooth and Spotlight icons? "
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.systemuiserver menuExtras -array "/System/Library/CoreServices/Menu Extras/Bluetooth.menu" "/System/Library/CoreServices/Menu Extras/AirPort.menu" "/System/Library/CoreServices/Menu Extras/Battery.menu" "/System/Library/CoreServices/Menu Extras/Clock.menu"
    sudo chmod 600 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Increasing the window resize speed for Cocoa applications whether you like it or not"
    defaults write NSGlobalDomain NSWindowResizeTime -float 0.001

    echo ""
    echo "Expanding the save panel by default"
    defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true

    echo ""
    echo "Disable the 'Are you sure you want to open this application?' dialog"
    defaults write com.apple.LaunchServices LSQuarantine -bool false

    # Display ASCII control characters using caret notation in standard text views
    # Try e.g. `cd /tmp; unidecode "\x{0000}" > cc.txt; open -e cc.txt`
    echo ""
    echo "Do some ASCII shit"
    defaults write NSGlobalDomain NSTextShowsControlCharacters -bool true

    # Disable Resume system-wide
    echo ""
    echo "Do you want to disable the stupid system-wide resume?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) echo "Yay, you made the right choice! Disabling system-wide resume"
    defaults write NSGlobalDomain NSQuitAlwaysKeepsWindows -bool false
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    # Disable automatic termination of inactive apps
    echo ""
    echo "OSX Y U TERMINATE INACTIVE APPS? DO NOT DO THAT"
    defaults write NSGlobalDomain NSDisableAutomaticTermination -bool true

    ###############################################################################
    # Trackpad, mouse, keyboard, Bluetooth accessories, and input #
    ###############################################################################

    echo ""
    echo "Increasing sound quality for Bluetooth headphones/headsets, because duhhhhh"
    defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" -int 40

    echo ""
    echo "Why is this not default anymore?! Enabling full keyboard access for all controls (e.g. enable Tab in modal dialogs)"
    defaults write NSGlobalDomain AppleKeyboardUIMode -int 3

    echo ""
    echo "Disabling press-and-hold for keys in favor of key repeat and setting a blazingly fast keyboard repeat rate (ain't nobody got time fo special chars while coding!)"
    defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false
    defaults write NSGlobalDomain KeyRepeat -int 0

    echo ""
    echo "I don't even... (disabling auto-correct)"
    defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false

    ###############################################################################
    # Screen #
    ###############################################################################

    echo ""
    echo "I'm in yer computer, hax0ring yr passwords!"
    echo "Requiring password immediately after sleep or screen saver begins"
    defaults write com.apple.screensaver askForPassword -int 1
    defaults write com.apple.screensaver askForPasswordDelay -int 0

    echo ""
    echo "Where do you want screenshots to be stored? (hit ENTER if you want ~/Desktop as default)"
    read screenshot_location
    if [ -z "$1" ]
    @@ -121,7 +135,8 @@ else
    echo "Setting location to ~/$screenshot_location"
    defaults write com.apple.screencapture location -string "$HOME/$screenshot_location"
    fi


    echo ""
    echo "What format should screenshots be saved as? (options: BMP, GIF, JPG, PDF, TIFF) "
    read screenshot_format
    if [ -z "$1" ]
    @@ -133,131 +148,145 @@ else
    defaults write com.apple.screencapture type -string "$screenshot_format"
    fi

    echo ""
    echo "Enabling subpixel font rendering on non-Apple LCDs"
    defaults write NSGlobalDomain AppleFontSmoothing -int 2

    ###############################################################################
    # Finder #
    ###############################################################################

    echo ""
    echo "Show icons for hard drives, servers, and removable media on the desktop?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Finder: show hidden files by default?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.Finder AppleShowAllFiles -bool true
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Show dotfiles in Finder?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder AppleShowAllFiles TRUE
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Finder: show all filename extensions?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write NSGlobalDomain AppleShowAllExtensions -bool true
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Finder: show status bar?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder ShowStatusBar -bool true
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Finder: allow text selection in Quick Look/Preview?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder QLEnableTextSelection -bool true
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Display full POSIX path as Finder window title?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder _FXShowPosixPathInTitle -bool true
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Disable the warning when changing a file extension?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Avoiding creating stupid .DS_Store files on network volumes"
    defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

    echo ""
    echo "Disable disk image verification?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) 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
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Automatically open a new Finder window when a volume is mounted?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) 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
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Enable snap-to-grid for icons on the desktop and in other icon views?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) /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
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Setting Trash to empty securely by default"
    defaults write com.apple.finder EmptyTrashSecurely -bool true

    echo ""
    echo "Show the ~/Library folder?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) chflags nohidden ~/Library
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    @@ -267,77 +296,92 @@ done
    # Dock & hot corners #
    ###############################################################################

    echo ""
    echo "Setting the icon size of Dock items to 36 pixels for optimal size/screen-realestate"
    defaults write com.apple.dock tilesize -int 36

    echo ""
    echo "Speeding up Mission Control animations and grouping windows by application"
    defaults write com.apple.dock expose-animation-duration -float 0.1
    defaults write com.apple.dock "expose-group-by-app" -bool true

    echo ""
    echo "Setting Dock to auto-hide and removing the auto-hiding delay"
    defaults write com.apple.dock autohide -bool true
    defaults write com.apple.Dock autohide-delay -float 0
    defaults write com.apple.dock autohide-time-modifier -float 0

    echo ""
    echo "Enabling iTunes track notifications in the Dock"
    defaults write com.apple.dock itunes-notifications -bool true

    echo ""
    echo "Reset Launchpad?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) find ~/Library/Application\ Support/Dock -name "*.db" -maxdepth 1 -delete
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    ###############################################################################
    # Safari & WebKit #
    ###############################################################################

    echo ""
    echo "Disabling Safari’s thumbnail cache for History and Top Sites"
    defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2

    echo ""
    echo "Enabling Safari’s debug menu"
    defaults write com.apple.Safari IncludeInternalDebugMenu -bool true

    echo ""
    echo "Making Safari’s search banners default to Contains instead of Starts With"
    defaults write com.apple.Safari FindOnPageMatchesWordStartsOnly -bool false

    echo ""
    echo "Removing useless icons from Safari’s bookmarks bar"
    defaults write com.apple.Safari ProxiesInBookmarksBar "()"

    echo ""
    echo "Enabling 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

    echo ""
    echo "Adding a context menu item for showing the Web Inspector in web views"
    defaults write NSGlobalDomain WebKitDeveloperExtras -bool true

    ###############################################################################
    # Address Book, Dashboard, iCal, iTunes, Mail, and Disk Utility #
    ###############################################################################

    echo ""
    echo "Enabling Dashboard dev mode (allows keeping widgets on the desktop)"
    defaults write com.apple.dashboard devmode -bool true

    echo ""
    echo "Copy email addresses as '[email protected]' instead of 'Foo Bar <[email protected]>' in Mail.app?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.mail AddressesIncludeNameOnPasteboard -bool false
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    echo ""
    echo "Enabling the debug menu in Disk Utility"
    defaults write com.apple.DiskUtility DUDebugMenuEnabled -bool true

    ###############################################################################
    # Terminal #
    ###############################################################################

    echo ""
    echo "Enabling UTF-8 ONLY in Terminal.app and setting the Pro theme by default"
    defaults write com.apple.terminal StringEncodings -array 4
    defaults write com.apple.Terminal "Default Window Settings" -string "Pro"
    @@ -347,32 +391,39 @@ defaults write com.apple.Terminal "Startup Window Settings" -string "Pro"
    # Time Machine #
    ###############################################################################

    echo ""
    echo "Preventing Time Machine from prompting to use new hard drives as backup volume"
    defaults write com.apple.TimeMachine DoNotOfferNewDisksForBackup -bool true

    echo ""
    echo "Disabling local Time Machine backups"
    hash tmutil &> /dev/null && sudo tmutil disablelocal

    ###############################################################################
    # Personal Additions #
    ###############################################################################

    echo ""
    echo "Deleting space hogging sleep image and disabling"
    rm /private/var/vm/sleepimage
    pmset -a hibernatemode 0

    echo ""
    echo "Disable OS X logging of downloaded files? (highly advised)"
    echo "For more info visit http://www.macgasm.net/2013/01/18/good-morning-your-mac-keeps-a-log-of-all-your-downloads/"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.LaunchServices LSQuarantine -bool NO.
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    ###############################################################################
    # Sublime Text 2 #
    ###############################################################################

    echo ""
    echo "Do you use Sublime Text as your editor of choice and is it installed?"
    select yn in "Yes" "No"; do
    case $yn in
    @@ -381,16 +432,17 @@ select yn in "Yes" "No"; do
    echo "Setting Git to use Sublime Text 2 as default editor"
    git config --global core.editor "subl -n -w"
    break;;
    No ) exit;;
    No ) break;;
    esac
    done

    ###############################################################################
    # Kill affected applications #
    ###############################################################################

    echo "Done!"
    echo "###############################################################################"
    echo ""
    echo "DONE!"
    echo ""
    echo "###############################################################################"
    echo ""
  21. Brandon Brown revised this gist Apr 12, 2013. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -17,7 +17,8 @@ fi
    # No ) exit;;
    # esac
    # done

    echo "###############################################################################"
    echo ""
    echo "This script will make your Mac awesome. Follow the prompts and you'll be fine."
    echo ""
    echo "Happy Hacking!"
  22. Brandon Brown revised this gist Apr 12, 2013. 1 changed file with 401 additions and 0 deletions.
    401 changes: 401 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,401 @@
    # ~/.osx — http://mths.be/osx

    # root check
    if [[ $EUID -ne 0 ]]; then
    echo "################################";
    echo "## YOU ARE NOT RUNNING AS ROOT #";
    echo "################################";
    echo "#";
    echo "# USAGE: sudo $0";
    exit;
    fi

    # select yn in "Yes" "No"; do
    # case $yn in
    # Yes )
    # break;;
    # No ) exit;;
    # esac
    # done

    echo "This script will make your Mac awesome. Follow the prompts and you'll be fine."
    echo ""
    echo "Happy Hacking!"
    echo ""
    echo "###############################################################################"
    echo ""
    echo ""

    ###############################################################################
    # General UI/UX #
    ###############################################################################

    echo "Want to set the computer name? (as done via System Preferences → Sharing)"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) echo 'What is your computer name going to be? '
    read comp_name
    scutil --set ComputerName $comp_name
    scutil --set HostName $comp_name
    scutil --set LocalHostName $comp_name
    break;;
    No ) exit;;
    esac
    done

    # Menu bar, hide icons for:
    # - Time Machine
    # - Volume
    echo "Hide the useless Time Machine, Volume, Bluetooth and Spotlight icons? "
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.systemuiserver menuExtras -array "/System/Library/CoreServices/Menu Extras/Bluetooth.menu" "/System/Library/CoreServices/Menu Extras/AirPort.menu" "/System/Library/CoreServices/Menu Extras/Battery.menu" "/System/Library/CoreServices/Menu Extras/Clock.menu"
    sudo chmod 600 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search
    break;;
    No ) exit;;
    esac
    done
    echo "Increasing the window resize speed for Cocoa applications whether you like it or not"
    defaults write NSGlobalDomain NSWindowResizeTime -float 0.001

    echo "Expanding the save panel by default"
    defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true

    echo "Disable the 'Are you sure you want to open this application?' dialog"
    defaults write com.apple.LaunchServices LSQuarantine -bool false

    # Display ASCII control characters using caret notation in standard text views
    # Try e.g. `cd /tmp; unidecode "\x{0000}" > cc.txt; open -e cc.txt`
    echo "Do some ASCII shit"
    defaults write NSGlobalDomain NSTextShowsControlCharacters -bool true

    # Disable Resume system-wide
    echo "Do you want to disable the stupid system-wide resume?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) echo "Yay, you made the right choice! Disabling system-wide resume"
    defaults write NSGlobalDomain NSQuitAlwaysKeepsWindows -bool false
    break;;
    No ) exit;;
    esac
    done

    # Disable automatic termination of inactive apps
    echo "OSX Y U TERMINATE INACTIVE APPS? DO NOT DO THAT"
    defaults write NSGlobalDomain NSDisableAutomaticTermination -bool true

    ###############################################################################
    # Trackpad, mouse, keyboard, Bluetooth accessories, and input #
    ###############################################################################

    echo "Increasing sound quality for Bluetooth headphones/headsets, because duhhhhh"
    defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" -int 40

    echo "Why is this not default anymore?! Enabling full keyboard access for all controls (e.g. enable Tab in modal dialogs)"
    defaults write NSGlobalDomain AppleKeyboardUIMode -int 3

    echo "Disabling press-and-hold for keys in favor of key repeat and setting a blazingly fast keyboard repeat rate (ain't nobody got time fo special chars while coding!)"
    defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false
    defaults write NSGlobalDomain KeyRepeat -int 0

    echo "I don't even... (disabling auto-correct)"
    defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false

    ###############################################################################
    # Screen #
    ###############################################################################

    echo "I'm in yer computer, hax0ring yr passwords!"
    echo "Requiring password immediately after sleep or screen saver begins"
    defaults write com.apple.screensaver askForPassword -int 1
    defaults write com.apple.screensaver askForPasswordDelay -int 0

    echo "Where do you want screenshots to be stored? (hit ENTER if you want ~/Desktop as default)"
    read screenshot_location
    if [ -z "$1" ]
    then
    echo "Setting location to ~/Desktop"
    defaults write com.apple.screencapture location -string "$HOME/Desktop"
    else
    echo "Setting location to ~/$screenshot_location"
    defaults write com.apple.screencapture location -string "$HOME/$screenshot_location"
    fi

    echo "What format should screenshots be saved as? (options: BMP, GIF, JPG, PDF, TIFF) "
    read screenshot_format
    if [ -z "$1" ]
    then
    echo "Setting screenshot format to PNG"
    defaults write com.apple.screencapture type -string "png"
    else
    echo "Setting screenshot format to $screenshot_format"
    defaults write com.apple.screencapture type -string "$screenshot_format"
    fi


    echo "Enabling subpixel font rendering on non-Apple LCDs"
    defaults write NSGlobalDomain AppleFontSmoothing -int 2

    ###############################################################################
    # Finder #
    ###############################################################################

    echo "Show icons for hard drives, servers, and removable media on the desktop?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true
    break;;
    No ) exit;;
    esac
    done

    echo "Finder: show hidden files by default?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.Finder AppleShowAllFiles -bool true
    break;;
    No ) exit;;
    esac
    done

    echo "Show dotfiles in Finder?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder AppleShowAllFiles TRUE
    break;;
    No ) exit;;
    esac
    done

    echo "Finder: show all filename extensions?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write NSGlobalDomain AppleShowAllExtensions -bool true
    break;;
    No ) exit;;
    esac
    done

    echo "Finder: show status bar?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder ShowStatusBar -bool true
    break;;
    No ) exit;;
    esac
    done

    echo "Finder: allow text selection in Quick Look/Preview?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder QLEnableTextSelection -bool true
    break;;
    No ) exit;;
    esac
    done

    echo "Display full POSIX path as Finder window title?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder _FXShowPosixPathInTitle -bool true
    break;;
    No ) exit;;
    esac
    done

    echo "Disable the warning when changing a file extension?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
    break;;
    No ) exit;;
    esac
    done

    echo "Avoiding creating stupid .DS_Store files on network volumes"
    defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

    echo "Disable disk image verification?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) 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
    break;;
    No ) exit;;
    esac
    done

    echo "Automatically open a new Finder window when a volume is mounted?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) 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
    break;;
    No ) exit;;
    esac
    done

    echo "Enable snap-to-grid for icons on the desktop and in other icon views?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) /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
    break;;
    No ) exit;;
    esac
    done

    echo "Setting Trash to empty securely by default"
    defaults write com.apple.finder EmptyTrashSecurely -bool true

    echo "Show the ~/Library folder?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) chflags nohidden ~/Library
    break;;
    No ) exit;;
    esac
    done



    ###############################################################################
    # Dock & hot corners #
    ###############################################################################

    echo "Setting the icon size of Dock items to 36 pixels for optimal size/screen-realestate"
    defaults write com.apple.dock tilesize -int 36

    echo "Speeding up Mission Control animations and grouping windows by application"
    defaults write com.apple.dock expose-animation-duration -float 0.1
    defaults write com.apple.dock "expose-group-by-app" -bool true

    echo "Setting Dock to auto-hide and removing the auto-hiding delay"
    defaults write com.apple.dock autohide -bool true
    defaults write com.apple.Dock autohide-delay -float 0
    defaults write com.apple.dock autohide-time-modifier -float 0

    echo "Enabling iTunes track notifications in the Dock"
    defaults write com.apple.dock itunes-notifications -bool true

    echo "Reset Launchpad?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) find ~/Library/Application\ Support/Dock -name "*.db" -maxdepth 1 -delete
    break;;
    No ) exit;;
    esac
    done

    ###############################################################################
    # Safari & WebKit #
    ###############################################################################

    echo "Disabling Safari’s thumbnail cache for History and Top Sites"
    defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2

    echo "Enabling Safari’s debug menu"
    defaults write com.apple.Safari IncludeInternalDebugMenu -bool true

    echo "Making Safari’s search banners default to Contains instead of Starts With"
    defaults write com.apple.Safari FindOnPageMatchesWordStartsOnly -bool false

    echo "Removing useless icons from Safari’s bookmarks bar"
    defaults write com.apple.Safari ProxiesInBookmarksBar "()"

    echo "Enabling 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

    echo "Adding a context menu item for showing the Web Inspector in web views"
    defaults write NSGlobalDomain WebKitDeveloperExtras -bool true

    ###############################################################################
    # Address Book, Dashboard, iCal, iTunes, Mail, and Disk Utility #
    ###############################################################################

    echo "Enabling Dashboard dev mode (allows keeping widgets on the desktop)"
    defaults write com.apple.dashboard devmode -bool true

    echo "Copy email addresses as '[email protected]' instead of 'Foo Bar <[email protected]>' in Mail.app?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.mail AddressesIncludeNameOnPasteboard -bool false
    break;;
    No ) exit;;
    esac
    done

    echo "Enabling the debug menu in Disk Utility"
    defaults write com.apple.DiskUtility DUDebugMenuEnabled -bool true

    ###############################################################################
    # Terminal #
    ###############################################################################

    echo "Enabling UTF-8 ONLY in Terminal.app and setting the Pro theme by default"
    defaults write com.apple.terminal StringEncodings -array 4
    defaults write com.apple.Terminal "Default Window Settings" -string "Pro"
    defaults write com.apple.Terminal "Startup Window Settings" -string "Pro"

    ###############################################################################
    # Time Machine #
    ###############################################################################

    echo "Preventing Time Machine from prompting to use new hard drives as backup volume"
    defaults write com.apple.TimeMachine DoNotOfferNewDisksForBackup -bool true

    echo "Disabling local Time Machine backups"
    hash tmutil &> /dev/null && sudo tmutil disablelocal

    ###############################################################################
    # Personal Additions #
    ###############################################################################
    echo "Deleting space hogging sleep image and disabling"
    rm /private/var/vm/sleepimage
    pmset -a hibernatemode 0

    echo "Disable OS X logging of downloaded files? (highly advised)"
    echo "For more info visit http://www.macgasm.net/2013/01/18/good-morning-your-mac-keeps-a-log-of-all-your-downloads/"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.LaunchServices LSQuarantine -bool NO.
    break;;
    No ) exit;;
    esac
    done

    ###############################################################################
    # Sublime Text 2 #
    ###############################################################################
    echo "Do you use Sublime Text as your editor of choice and is it installed?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) echo "Linking Sublime Text 2 command line"
    ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /bin/subl
    echo "Setting Git to use Sublime Text 2 as default editor"
    git config --global core.editor "subl -n -w"
    break;;
    No ) exit;;
    esac
    done

    ###############################################################################
    # Kill affected applications #
    ###############################################################################

    echo "Done!"
    echo ""
    echo ""
    echo "###############################################################################"
    echo ""
    echo ""
    echo "Note that some of these changes require a logout/restart to take effect."
    echo "Killing some open applications in order to take effect."
    for app in Finder Dock Mail Safari iTunes iCal Address\ Book SystemUIServer Twitter; do
    killall "$app" > /dev/null 2>&1
    done
  23. Brandon Brown renamed this gist Apr 12, 2013. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  24. Brandon Brown revised this gist Apr 12, 2013. No changes.
  25. Brandon Brown revised this gist Apr 12, 2013. 1 changed file with 263 additions and 156 deletions.
    419 changes: 263 additions & 156 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -1,290 +1,397 @@
    # ~/.osx — http://mths.be/osx

    # root check
    if [[ $EUID -ne 0 ]]; then
    echo "################################";
    echo "## YOU ARE NOT RUNNING AS ROOT #";
    echo "################################";
    echo "#";
    echo "# USAGE: sudo $0";
    exit;
    fi

    # select yn in "Yes" "No"; do
    # case $yn in
    # Yes )
    # break;;
    # No ) exit;;
    # esac
    # done

    echo "This script will make your Mac awesome. Follow the prompts and you'll be fine."

    echo "Happy Hacking!"

    ###############################################################################
    # General UI/UX #
    ###############################################################################

    # Set computer name (as done via System Preferences → Sharing)
    scutil --set ComputerName "MacBookPro"
    scutil --set HostName "MacBookPro"
    scutil --set LocalHostName "MacBookPro"

    # Menu bar: hide the useless Time Machine and Volume icons
    defaults write com.apple.systemuiserver menuExtras -array "/System/Library/CoreServices/Menu Extras/Bluetooth.menu" "/System/Library/CoreServices/Menu Extras/AirPort.menu" "/System/Library/CoreServices/Menu Extras/Battery.menu" "/System/Library/CoreServices/Menu Extras/Clock.menu"
    echo "Want to set the computer name? (as done via System Preferences → Sharing)"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) echo 'What is your computer name going to be? '
    read comp_name
    scutil --set ComputerName $comp_name
    scutil --set HostName $comp_name
    scutil --set LocalHostName $comp_name
    break;;
    No ) exit;;
    esac
    done

    # Increase window resize speed for Cocoa applications
    # Menu bar, hide icons for:
    # - Time Machine
    # - Volume
    echo "Hide the useless Time Machine, Volume, Bluetooth and Spotlight icons? "
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.systemuiserver menuExtras -array "/System/Library/CoreServices/Menu Extras/Bluetooth.menu" "/System/Library/CoreServices/Menu Extras/AirPort.menu" "/System/Library/CoreServices/Menu Extras/Battery.menu" "/System/Library/CoreServices/Menu Extras/Clock.menu"
    sudo chmod 600 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search
    break;;
    No ) exit;;
    esac
    done
    echo "Increasing the window resize speed for Cocoa applications whether you like it or not"
    defaults write NSGlobalDomain NSWindowResizeTime -float 0.001

    # Expand save panel by default
    echo "Expanding the save panel by default"
    defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true

    # Disable the Are you sure you want to open this application? dialog
    echo "Disable the 'Are you sure you want to open this application?' dialog"
    defaults write com.apple.LaunchServices LSQuarantine -bool false

    # Display ASCII control characters using caret notation in standard text views
    # Try e.g. `cd /tmp; unidecode "\x{0000}" > cc.txt; open -e cc.txt`
    echo "Do some ASCII shit"
    defaults write NSGlobalDomain NSTextShowsControlCharacters -bool true

    # Disable Resume system-wide
    defaults write NSGlobalDomain NSQuitAlwaysKeepsWindows -bool false
    echo "Do you want to disable the stupid system-wide resume?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) echo "Yay, you made the right choice! Disabling system-wide resume"
    defaults write NSGlobalDomain NSQuitAlwaysKeepsWindows -bool false
    break;;
    No ) exit;;
    esac
    done

    # Disable automatic termination of inactive apps
    echo "OSX Y U TERMINATE INACTIVE APPS? DO NOT DO THAT"
    defaults write NSGlobalDomain NSDisableAutomaticTermination -bool true

    ###############################################################################
    # Trackpad, mouse, keyboard, Bluetooth accessories, and input #
    ###############################################################################

    # Increase sound quality for Bluetooth headphones/headsets
    echo "Increasing sound quality for Bluetooth headphones/headsets, because duhhhhh"
    defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" -int 40

    # Enable full keyboard access for all controls
    # (e.g. enable Tab in modal dialogs)
    echo "Why is this not default anymore?! Enabling full keyboard access for all controls (e.g. enable Tab in modal dialogs)"
    defaults write NSGlobalDomain AppleKeyboardUIMode -int 3

    # Disable press-and-hold for keys in favor of key repeat
    echo "Disabling press-and-hold for keys in favor of key repeat and setting a blazingly fast keyboard repeat rate (ain't nobody got time fo special chars while coding!)"
    defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false

    # Set a blazingly fast keyboard repeat rate
    defaults write NSGlobalDomain KeyRepeat -int 0

    # Disable auto-correct
    echo "I don't even... (disabling auto-correct)"
    defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false

    ###############################################################################
    # Screen #
    ###############################################################################

    # Require password immediately after sleep or screen saver begins
    # defaults write com.apple.screensaver askForPassword -int 1
    # defaults write com.apple.screensaver askForPasswordDelay -int 0

    # Save screenshots to the desktop
    defaults write com.apple.screencapture location -string "$HOME/Desktop"

    # Save screenshots in PNG format (other options: BMP, GIF, JPG, PDF, TIFF)
    defaults write com.apple.screencapture type -string "png"

    # Enable subpixel font rendering on non-Apple LCDs
    echo "I'm in yer computer, hax0ring yr passwords!"
    echo "Requiring password immediately after sleep or screen saver begins"
    defaults write com.apple.screensaver askForPassword -int 1
    defaults write com.apple.screensaver askForPasswordDelay -int 0

    echo "Where do you want screenshots to be stored? (hit ENTER if you want ~/Desktop as default)"
    read screenshot_location
    if [ -z "$1" ]
    then
    echo "Setting location to ~/Desktop"
    defaults write com.apple.screencapture location -string "$HOME/Desktop"
    else
    echo "Setting location to ~/$screenshot_location"
    defaults write com.apple.screencapture location -string "$HOME/$screenshot_location"
    fi

    echo "What format should screenshots be saved as? (options: BMP, GIF, JPG, PDF, TIFF) "
    read screenshot_format
    if [ -z "$1" ]
    then
    echo "Setting screenshot format to PNG"
    defaults write com.apple.screencapture type -string "png"
    else
    echo "Setting screenshot format to $screenshot_format"
    defaults write com.apple.screencapture type -string "$screenshot_format"
    fi


    echo "Enabling subpixel font rendering on non-Apple LCDs"
    defaults write NSGlobalDomain AppleFontSmoothing -int 2

    ###############################################################################
    # Finder #
    ###############################################################################

    # Show icons for hard drives, servers, and removable media on the desktop
    defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true
    echo "Show icons for hard drives, servers, and removable media on the desktop?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true
    break;;
    No ) exit;;
    esac
    done

    # Finder: show hidden files by default
    # defaults write com.apple.Finder AppleShowAllFiles -bool true
    echo "Finder: show hidden files by default?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.Finder AppleShowAllFiles -bool true
    break;;
    No ) exit;;
    esac
    done

    # Finder: show all filename extensions
    defaults write NSGlobalDomain AppleShowAllExtensions -bool true
    echo "Show dotfiles in Finder?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder AppleShowAllFiles TRUE
    break;;
    No ) exit;;
    esac
    done

    echo "Finder: show all filename extensions?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write NSGlobalDomain AppleShowAllExtensions -bool true
    break;;
    No ) exit;;
    esac
    done

    # Finder: show status bar
    defaults write com.apple.finder ShowStatusBar -bool true
    echo "Finder: show status bar?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder ShowStatusBar -bool true
    break;;
    No ) exit;;
    esac
    done

    # Finder: allow text selection in Quick Look
    defaults write com.apple.finder QLEnableTextSelection -bool true
    echo "Finder: allow text selection in Quick Look/Preview?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder QLEnableTextSelection -bool true
    break;;
    No ) exit;;
    esac
    done

    # Display full POSIX path as Finder window title
    defaults write com.apple.finder _FXShowPosixPathInTitle -bool true
    echo "Display full POSIX path as Finder window title?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder _FXShowPosixPathInTitle -bool true
    break;;
    No ) exit;;
    esac
    done

    # Disable the warning when changing a file extension
    defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
    echo "Disable the warning when changing a file extension?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
    break;;
    No ) exit;;
    esac
    done

    # Avoid creating .DS_Store files on network volumes
    echo "Avoiding creating stupid .DS_Store files on network volumes"
    defaults write com.apple.desktopservices DSDontWriteNetworkStores -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
    echo "Disable disk image verification?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) 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
    break;;
    No ) exit;;
    esac
    done

    # 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
    echo "Automatically open a new Finder window when a volume is mounted?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) 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
    break;;
    No ) exit;;
    esac
    done

    # Enable snap-to-grid for icons on the desktop and in other icon views
    /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
    echo "Enable snap-to-grid for icons on the desktop and in other icon views?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) /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
    break;;
    No ) exit;;
    esac
    done

    # Empty Trash securely by default
    echo "Setting Trash to empty securely by default"
    defaults write com.apple.finder EmptyTrashSecurely -bool true

    # Show the ~/Library folder
    chflags nohidden ~/Library
    echo "Show the ~/Library folder?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) chflags nohidden ~/Library
    break;;
    No ) exit;;
    esac
    done



    ###############################################################################
    # Dock & hot corners #
    ###############################################################################

    # Enable highlight hover effect for the grid view of a stack (Dock)
    defaults write com.apple.dock mouse-over-hilte-stack -bool true

    # Set the icon size of Dock items to 36 pixels
    echo "Setting the icon size of Dock items to 36 pixels for optimal size/screen-realestate"
    defaults write com.apple.dock tilesize -int 36

    # Speed up Mission Control animations
    echo "Speeding up Mission Control animations and grouping windows by application"
    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-by-app" -bool true

    # Remove the auto-hiding Dock delay
    echo "Setting Dock to auto-hide and removing the auto-hiding delay"
    defaults write com.apple.dock autohide -bool true
    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

    # Automatically hide and show the Dock
    defaults write com.apple.dock autohide -bool true

    # Enable iTunes track notifications in the Dock
    echo "Enabling iTunes track notifications in the Dock"
    defaults write com.apple.dock itunes-notifications -bool true

    # Reset Launchpad
    find ~/Library/Application\ Support/Dock -name "*.db" -maxdepth 1 -delete
    echo "Reset Launchpad?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) find ~/Library/Application\ Support/Dock -name "*.db" -maxdepth 1 -delete
    break;;
    No ) exit;;
    esac
    done

    ###############################################################################
    # Safari & WebKit #
    ###############################################################################

    # Hide Safari’s bookmarks bar by default
    defaults write com.apple.Safari ShowFavoritesBar -bool false

    # Disable Safari’s thumbnail cache for History and Top Sites
    echo "Disabling Safari’s thumbnail cache for History and Top Sites"
    defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2

    # Enable Safari’s debug menu
    echo "Enabling Safari’s debug menu"
    defaults write com.apple.Safari IncludeInternalDebugMenu -bool true

    # Make Safari’s search banners default to Contains instead of Starts With
    echo "Making 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
    echo "Removing useless icons from Safari’s bookmarks bar"
    defaults write com.apple.Safari ProxiesInBookmarksBar "()"

    # Enable the Develop menu and the Web Inspector in Safari
    echo "Enabling 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

    # Add a context menu item for showing the Web Inspector in web views
    echo "Adding a context menu item for showing the Web Inspector in web views"
    defaults write NSGlobalDomain WebKitDeveloperExtras -bool true

    ###############################################################################
    # Address Book, Dashboard, iCal, iTunes, Mail, and Disk Utility #
    ###############################################################################

    # Enable Dashboard dev mode (allows keeping widgets on the desktop)
    echo "Enabling Dashboard dev mode (allows keeping widgets on the desktop)"
    defaults write com.apple.dashboard devmode -bool true

    # Disable the Ping stuff iTunes
    defaults write com.apple.iTunes disablePingSidebar -bool true
    defaults write com.apple.iTunes disablePing -bool true

    # Make ⌘ + F focus the search input in iTunes
    defaults write com.apple.iTunes NSUserKeyEquivalents -dict-add "Target Search Field" "@F"

    # Copy email addresses as `[email protected]` instead of `Foo Bar <[email protected]>` in Mail.app
    defaults write com.apple.mail AddressesIncludeNameOnPasteboard -bool false
    echo "Copy email addresses as '[email protected]' instead of 'Foo Bar <[email protected]>' in Mail.app?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.mail AddressesIncludeNameOnPasteboard -bool false
    break;;
    No ) exit;;
    esac
    done

    # Enable the debug menu in Disk Utility
    echo "Enabling the debug menu in Disk Utility"
    defaults write com.apple.DiskUtility DUDebugMenuEnabled -bool true

    ###############################################################################
    # Terminal #
    ###############################################################################

    # Only use UTF-8 in Terminal.app
    echo "Enabling UTF-8 ONLY in Terminal.app and setting the Pro theme by default"
    defaults write com.apple.terminal StringEncodings -array 4

    # Use the Pro theme by default in Terminal.app
    defaults write com.apple.Terminal "Default Window Settings" -string "Pro"
    defaults write com.apple.Terminal "Startup Window Settings" -string "Pro"

    ###############################################################################
    # Time Machine #
    ###############################################################################

    # Prevent Time Machine from prompting to use new hard drives as backup volume
    echo "Preventing Time Machine from prompting to use new hard drives as backup volume"
    defaults write com.apple.TimeMachine DoNotOfferNewDisksForBackup -bool true

    # Disable local Time Machine backups
    echo "Disabling local Time Machine backups"
    hash tmutil &> /dev/null && sudo tmutil disablelocal

    ###############################################################################
    # Twitter.app #
    ###############################################################################

    # Disable smart quotes as it’s annoying for code tweets
    defaults write com.twitter.twitter-mac AutomaticQuoteSubstitutionEnabled -bool false

    # Show the app window when clicking the menu icon
    defaults write com.twitter.twitter-mac MenuItemBehavior -int 1

    # Enable the hidden ‘Develop’ menu
    defaults write com.twitter.twitter-mac ShowDevelopMenu -bool true

    # Open links in the background
    defaults write com.twitter.twitter-mac openLinksInBackground -bool true

    # Allow closing the ‘new tweet’ window by pressing `Esc`
    defaults write com.twitter.twitter-mac ESCClosesComposeWindow -bool true

    # Show full names rather than Twitter handles
    # defaults write com.twitter.twitter-mac ShowFullNames -bool true

    ###############################################################################
    # Personal Additions #
    ###############################################################################
    # Delete space hogging sleep image when an SSD is installed
    echo "Deleting space hogging sleep image and disabling"
    rm /private/var/vm/sleepimage
    pmset -a hibernatemode 0

    # Deactivate dynamic paging in Lion http://workstuff.tumblr.com/post/20464780085/something-is-deeply-broken-in-os-x-memory-management
    # EDIT: Apparently this has been fixed in Mountain Lion? http://workstuff.tumblr.com/post/28556080639/mountain-lion-seems-to-have-partially-addressed-the
    # sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

    # Reactivate dynamic paging
    # sudo launchctl load -wF /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

    # Show/hide Spotlight icon in menubar
    # Hide
    sudo chmod 600 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search
    # Show
    # sudo chmod 755 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search

    # Show dotfiles in Finder
    # defaults write com.apple.finder AppleShowAllFiles TRUE

    # Remove Notification Center from Menubar
    launchctl remove com.apple.notificationcenterui.agent

    # Add Notification Center to Menubar
    # launchctl submit -l com.apple.notificationcenterui.agent -p /System/Library/CoreServices/NotificationCenter.app/Contents/MacOS/NotificationCenter

    # disable OS X logging of downloaded files
    # http://www.macgasm.net/2013/01/18/good-morning-your-mac-keeps-a-log-of-all-your-downloads/
    defaults write com.apple.LaunchServices LSQuarantine -bool NO.
    echo "Disable OS X logging of downloaded files? (highly advised)"
    echo "For more info visit http://www.macgasm.net/2013/01/18/good-morning-your-mac-keeps-a-log-of-all-your-downloads/"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) defaults write com.apple.LaunchServices LSQuarantine -bool NO.
    break;;
    No ) exit;;
    esac
    done

    ###############################################################################
    # Sublime Text 2 #
    ###############################################################################
    # Link Sublime Text 2 command line
    ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /bin/subl

    # Set Git to use Sublime Text 2 as default editor
    git config --global core.editor "subl -n -w"
    echo "Do you use Sublime Text as your editor of choice and is it installed?"
    select yn in "Yes" "No"; do
    case $yn in
    Yes ) echo "Linking Sublime Text 2 command line"
    ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /bin/subl
    echo "Setting Git to use Sublime Text 2 as default editor"
    git config --global core.editor "subl -n -w"
    break;;
    No ) exit;;
    esac
    done

    ###############################################################################
    # Kill affected applications #
    ###############################################################################

    echo "Done!"
    echo ""
    echo ""
    echo "###############################################################################"
    echo ""
    echo ""
    echo "Note that some of these changes require a logout/restart to take effect."
    echo "Killing some open applications in order to take effect."
    for app in Finder Dock Mail Safari iTunes iCal Address\ Book SystemUIServer Twitter; do
    killall "$app" > /dev/null 2>&1
    done
    echo "Done. Note that some of these changes require a logout/restart to take effect."
    killall "$app" > /dev/null 2>&1
    done
  26. Brandon Brown renamed this gist Jan 19, 2013. 1 changed file with 4 additions and 0 deletions.
    4 changes: 4 additions & 0 deletions gistfile1 → gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -267,6 +267,10 @@ launchctl remove com.apple.notificationcenterui.agent
    # Add Notification Center to Menubar
    # launchctl submit -l com.apple.notificationcenterui.agent -p /System/Library/CoreServices/NotificationCenter.app/Contents/MacOS/NotificationCenter

    # disable OS X logging of downloaded files
    # http://www.macgasm.net/2013/01/18/good-morning-your-mac-keeps-a-log-of-all-your-downloads/
    defaults write com.apple.LaunchServices LSQuarantine -bool NO.

    ###############################################################################
    # Sublime Text 2 #
    ###############################################################################
  27. Brandon Brown revised this gist Dec 4, 2012. 1 changed file with 0 additions and 4 deletions.
    4 changes: 0 additions & 4 deletions gistfile1
    Original file line number Diff line number Diff line change
    @@ -75,10 +75,6 @@ defaults write NSGlobalDomain AppleFontSmoothing -int 2
    # 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

    # Finder: show hidden files by default
    # defaults write com.apple.Finder AppleShowAllFiles -bool true

  28. Brandon Brown renamed this gist Dec 4, 2012. 1 changed file with 8 additions and 150 deletions.
    158 changes: 8 additions & 150 deletions gistfile1.txt → gistfile1
    Original file line number Diff line number Diff line change
    @@ -9,31 +9,15 @@ scutil --set ComputerName "MacBookPro"
    scutil --set HostName "MacBookPro"
    scutil --set LocalHostName "MacBookPro"

    # Menu bar: disable transparency
    # defaults write NSGlobalDomain AppleEnableMenuBarTransparency -bool false

    # Menu bar: show remaining battery time (on pre-10.8); hide percentage
    defaults write com.apple.menuextra.battery ShowPercent -string "NO"
    defaults write com.apple.menuextra.battery ShowTime -string "YES"

    # Menu bar: hide the useless Time Machine and Volume icons
    defaults write com.apple.systemuiserver menuExtras -array "/System/Library/CoreServices/Menu Extras/Bluetooth.menu" "/System/Library/CoreServices/Menu Extras/AirPort.menu" "/System/Library/CoreServices/Menu Extras/Battery.menu" "/System/Library/CoreServices/Menu Extras/Clock.menu"

    # Always show scrollbars
    # defaults write NSGlobalDomain AppleShowScrollBars -string "Always"

    # Disable opening and closing window animations
    # defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool false

    # Increase window resize speed for Cocoa applications
    defaults write NSGlobalDomain NSWindowResizeTime -float 0.001

    # Expand save panel by default
    defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true

    # Expand print panel by default
    defaults write NSGlobalDomain PMPrintingExpandedStateForPrint -bool true

    # Disable the “Are you sure you want to open this application?” dialog
    defaults write com.apple.LaunchServices LSQuarantine -bool false

    @@ -47,33 +31,10 @@ defaults write NSGlobalDomain NSQuitAlwaysKeepsWindows -bool false
    # Disable automatic termination of inactive apps
    defaults write NSGlobalDomain NSDisableAutomaticTermination -bool true

    # Fix for the ancient UTF-8 bug in QuickLook (http://mths.be/bbo)
    # Commented out, as this is known to cause problems when saving files in Adobe Illustrator CS5 :(
    #echo "0x08000100:0" > ~/.CFUserTextEncoding

    ###############################################################################
    # Trackpad, mouse, keyboard, Bluetooth accessories, and input #
    ###############################################################################

    # 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

    # 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

    # Trackpad: swipe between pages with three fingers
    # defaults write NSGlobalDomain AppleEnableSwipeNavigateWithScrolls -bool true
    # defaults -currentHost write NSGlobalDomain com.apple.trackpad.threeFingerHorizSwipeGesture -int 1
    # defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerHorizSwipeGesture -int 1

    # Disable “natural” (Lion-style) scrolling
    # defaults write NSGlobalDomain com.apple.swipescrolldirection -bool false

    # Increase sound quality for Bluetooth headphones/headsets
    defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" -int 40

    @@ -95,36 +56,28 @@ defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false
    ###############################################################################

    # Require password immediately after sleep or screen saver begins
    defaults write com.apple.screensaver askForPassword -int 1
    defaults write com.apple.screensaver askForPasswordDelay -int 0
    # defaults write com.apple.screensaver askForPassword -int 1
    # defaults write com.apple.screensaver askForPasswordDelay -int 0

    # Save screenshots to the desktop
    defaults write com.apple.screencapture location -string "$HOME/Desktop"

    # Save screenshots in PNG format (other options: BMP, GIF, JPG, PDF, TIFF)
    defaults write com.apple.screencapture type -string "png"

    # Disable shadow in screenshots
    # defaults write com.apple.screencapture disable-shadow -bool true

    # Enable subpixel font rendering on non-Apple LCDs
    defaults write NSGlobalDomain AppleFontSmoothing -int 2

    ###############################################################################
    # Finder #
    ###############################################################################

    # Finder: allow quitting via ⌘ + Q; doing so will also hide desktop icons
    # defaults write com.apple.finder QuitMenuItem -bool true

    # Finder: disable window animations and Get Info animations
    # defaults write com.apple.finder DisableAllAnimations -bool true

    # 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
    # defaults write com.apple.finder ShowMountedServersOnDesktop -bool true
    # defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool true

    # Finder: show hidden files by default
    # defaults write com.apple.Finder AppleShowAllFiles -bool true
    @@ -157,43 +110,17 @@ 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 item info below icons on the desktop and in other icon views
    # /usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:showItemInfo true" ~/Library/Preferences/com.apple.finder.plist
    # /usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:showItemInfo true" ~/Library/Preferences/com.apple.finder.plist
    # /usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:showItemInfo true" ~/Library/Preferences/com.apple.finder.plist

    # Enable snap-to-grid for icons on the desktop and in other icon views
    /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

    # Increase grid spacing for icons on the desktop and in other icon views
    # /usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:gridSpacing 100" ~/Library/Preferences/com.apple.finder.plist
    # /usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:gridSpacing 100" ~/Library/Preferences/com.apple.finder.plist
    # /usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:gridSpacing 100" ~/Library/Preferences/com.apple.finder.plist

    # Increase the size of icons on the desktop and in other icon views
    # /usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:iconSize 80" ~/Library/Preferences/com.apple.finder.plist
    # /usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:iconSize 80" ~/Library/Preferences/com.apple.finder.plist
    # /usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:iconSize 80" ~/Library/Preferences/com.apple.finder.plist

    # Disable the warning before emptying the Trash
    defaults write com.apple.finder WarnOnEmptyTrash -bool false

    # Empty Trash securely by default
    defaults write com.apple.finder EmptyTrashSecurely -bool true

    # Enable AirDrop over Ethernet and on unsupported Macs running Lion
    defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool true

    # Show the ~/Library folder
    chflags nohidden ~/Library

    # Remove Dropbox’s green checkmark icons in Finder
    # file=/Applications/Dropbox.app/Contents/Resources/check.icns
    # [ -e "$file" ] && mv -f "$file" "$file.bak"
    # unset file

    ###############################################################################
    # Dock & hot corners #
    ###############################################################################
    @@ -204,60 +131,27 @@ defaults write com.apple.dock mouse-over-hilte-stack -bool true
    # Set the icon size of Dock items to 36 pixels
    defaults write com.apple.dock tilesize -int 36

    # Enable spring loading for all Dock items
    defaults write com.apple.dock enable-spring-load-actions-on-all-items -bool true

    # Show indicator lights for open applications in the Dock
    defaults write com.apple.dock show-process-indicators -bool true

    # 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-by-app" -bool true

    # Don’t show Dashboard as a Space
    # defaults write com.apple.dock "dashboard-in-overlay" -bool true

    # 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

    # Enable the 2D Dock
    #defaults write com.apple.dock no-glass -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

    # Enable iTunes track notifications in the Dock
    defaults write com.apple.dock itunes-notifications -bool true

    # Reset Launchpad
    find ~/Library/Application\ Support/Dock -name "*.db" -maxdepth 1 -delete

    # Add a spacer to the left side of the Dock (where the applications are)
    #defaults write com.apple.dock persistent-apps -array-add '{tile-data={}; tile-type="spacer-tile";}'
    # Add a spacer to the right side of the Dock (where the Trash is)
    #defaults write com.apple.dock persistent-others -array-add '{tile-data={}; tile-type="spacer-tile";}'

    # Hot corners
    # Top left screen corner → Mission Control
    # defaults write com.apple.dock wvous-tl-corner -int 2
    # defaults write com.apple.dock wvous-tl-modifier -int 0
    # Top right screen corner → Desktop
    # defaults write com.apple.dock wvous-tr-corner -int 4
    # defaults write com.apple.dock wvous-tr-modifier -int 0
    # Bottom left screen corner → Start screen saver
    # defaults write com.apple.dock wvous-bl-corner -int 5
    # defaults write com.apple.dock wvous-bl-modifier -int 0

    ###############################################################################
    # Safari & WebKit #
    ###############################################################################
    @@ -269,7 +163,7 @@ defaults write com.apple.Safari ShowFavoritesBar -bool false
    defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2

    # Enable Safari’s debug menu
    # defaults write com.apple.Safari IncludeInternalDebugMenu -bool true
    defaults write com.apple.Safari IncludeInternalDebugMenu -bool true

    # Make Safari’s search banners default to Contains instead of Starts With
    defaults write com.apple.Safari FindOnPageMatchesWordStartsOnly -bool false
    @@ -289,34 +183,16 @@ defaults write NSGlobalDomain WebKitDeveloperExtras -bool true
    # Address Book, Dashboard, iCal, iTunes, Mail, and Disk Utility #
    ###############################################################################

    # 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
    # defaults write com.apple.iCal IncludeDebugMenu -bool true

    # Make the iTunes arrow links go to your library instead of the iTunes Store
    # defaults write com.apple.iTunes invertStoreLinks -bool true

    # Disable the iTunes arrow links completely
    # defaults write com.apple.iTunes show-store-arrow-links -bool false

    # Disable the Ping sidebar in iTunes
    # Disable the Ping stuff iTunes
    defaults write com.apple.iTunes disablePingSidebar -bool true

    # Disable all the other Ping stuff in iTunes
    defaults write com.apple.iTunes disablePing -bool true

    # Make ⌘ + F focus the search input in iTunes
    defaults write com.apple.iTunes NSUserKeyEquivalents -dict-add "Target Search Field" "@F"

    # 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

    @@ -334,11 +210,6 @@ defaults write com.apple.terminal StringEncodings -array 4
    defaults write com.apple.Terminal "Default Window Settings" -string "Pro"
    defaults write com.apple.Terminal "Startup Window Settings" -string "Pro"

    # Enable “focus follows mouse” for Terminal.app and all X11 apps
    # This means you can hover over a window and start typing in it without clicking first
    #defaults write com.apple.terminal FocusFollowsMouse -bool true
    #defaults write org.x.X11 wm_ffm -bool true

    ###############################################################################
    # Time Machine #
    ###############################################################################
    @@ -371,9 +242,6 @@ defaults write com.twitter.twitter-mac ESCClosesComposeWindow -bool true
    # Show full names rather than Twitter handles
    # defaults write com.twitter.twitter-mac ShowFullNames -bool true

    # Hide the app in the background if it’s not the front-most window
    defaults write com.twitter.twitter-mac HideInBackground -bool true

    ###############################################################################
    # Personal Additions #
    ###############################################################################
    @@ -388,21 +256,12 @@ pmset -a hibernatemode 0
    # Reactivate dynamic paging
    # sudo launchctl load -wF /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

    # Turn off Elastic scroll effect
    # http://hints.macworld.com/article.php?story=20120509063823940
    defaults write -g NSScrollViewRubberbanding -int 0
    # Revert back to Elastic scroll effect
    # defaults delete -g NSScrollViewRubberbanding

    # Show/hide Spotlight icon in menubar
    # Hide
    sudo chmod 600 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search
    # Show
    # sudo chmod 755 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search

    # Enable Single Application Mode
    # defaults write com.apple.dock single-app -bool true

    # Show dotfiles in Finder
    # defaults write com.apple.finder AppleShowAllFiles TRUE

    @@ -412,7 +271,6 @@ launchctl remove com.apple.notificationcenterui.agent
    # Add Notification Center to Menubar
    # launchctl submit -l com.apple.notificationcenterui.agent -p /System/Library/CoreServices/NotificationCenter.app/Contents/MacOS/NotificationCenter


    ###############################################################################
    # Sublime Text 2 #
    ###############################################################################
  29. Brandon Brown renamed this gist Dec 3, 2012. 1 changed file with 0 additions and 8 deletions.
    8 changes: 0 additions & 8 deletions gistfile1 → gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -87,14 +87,6 @@ defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false
    # Set a blazingly fast keyboard repeat rate
    defaults write NSGlobalDomain KeyRepeat -int 0

    # Set language and text formats
    # Note: if you’re in the US, replace `EUR` with `USD`, `Centimeters` with
    # `Inches`, and `true` with `false`.
    defaults write NSGlobalDomain AppleLanguages -array "en" "nl"
    defaults write NSGlobalDomain AppleLocale -string "en_GB@currency=EUR"
    defaults write NSGlobalDomain AppleMeasurementUnits -string "Centimeters"
    defaults write NSGlobalDomain AppleMetricUnits -bool true

    # Disable auto-correct
    defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false

  30. @brandonb927 brandonb927 revised this gist Aug 2, 2012. 1 changed file with 3 additions and 3 deletions.
    6 changes: 3 additions & 3 deletions gistfile1
    Original file line number Diff line number Diff line change
    @@ -389,9 +389,9 @@ defaults write com.twitter.twitter-mac HideInBackground -bool true
    rm /private/var/vm/sleepimage
    pmset -a hibernatemode 0

    # Deactivate dynamic paging
    # http://workstuff.tumblr.com/post/20464780085/something-is-deeply-broken-in-os-x-memory-management
    sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
    # Deactivate dynamic paging in Lion http://workstuff.tumblr.com/post/20464780085/something-is-deeply-broken-in-os-x-memory-management
    # EDIT: Apparently this has been fixed in Mountain Lion? http://workstuff.tumblr.com/post/28556080639/mountain-lion-seems-to-have-partially-addressed-the
    # sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

    # Reactivate dynamic paging
    # sudo launchctl load -wF /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist