Mac OS X comes out of the box setup to be easy-to-use. For most people, the defaults are perfect. However, if you are here you are probably not like most people. You want to squeeze every last bit of performance from your Mac and bend the OS to your will.
In this article I’m going to give you a bunch of ways you can do just that using the built in defaults utility
This list was pulled from a shell script I found here. If you are comfortable running shell scripts and want to make all of these changes at once you should check it out.
In order for you to use the settings you must be comfortable running commands from the Terminal.
It’s important to realize that making these type of changes to your system could cause problems. It goes without saying that you should have your system backed up before you attempt to try any of these tweaks.
Ui Changes
Menu bar: disable transparency
Some people don’t like to see transparency in the menubar this setting will disable the 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
One change that annoyed a lot of people with OS X lion was that Apple decided to hide the scrollbar by default. While this does create a cleaner looking window many people use the scrollbars as a way to determine how far into a document they were. This tweak will turn the scrollbars on all the time.
defaults write NSGlobalDomain AppleShowScrollBars -string “Always”
Disable smooth scrolling
defaults write NSGlobalDomain NSScrollAnimationEnabled -bool false
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
Save to disk (not to iCloud) by default
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false
Automatically quit printer app once the print jobs complete
defaults write com.apple.print.PrintingPrefs “Quit When Finished” -bool true
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
defaults write NSGlobalDomain NSTextShowsControlCharacters -bool true
Disable Resume system-wide
defaults write NSGlobalDomain NSQuitAlwaysKeepsWindows -bool false
Disable automatic termination of inactive apps
defaults write NSGlobalDomain NSDisableAutomaticTermination -bool true
Disable the crash reporter
defaults write com.apple.CrashReporter DialogType -string “none”
Set Help Viewer windows to non-floating mode
defaults write com.apple.helpviewer DevMode -bool true
Reveal IP address, hostname, OS version, etc. when clicking the clock in the login window
defaults write /Library/Preferences/com.apple.loginwindow AdminHostInfo HostName
Check for software updates daily, not just once per week
defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1
Mouse Behavior
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
Enable full keyboard access for all controls (e.g. enable Tab in modal dialogs)
defaults write NSGlobalDomain AppleKeyboardUIMode -int 3
Use scroll gesture with the Ctrl (^) modifier key to zoom
defaults write com.apple.universalaccess closeViewScrollWheelToggle -bool true
defaults write com.apple.universalaccess HIDScrollZoomModifierMask -int 262144
Follow the keyboard focus while zoomed in
defaults write com.apple.universalaccess closeViewZoomFollowsFocus -bool true
Disable press-and-hold for keys in favor of key repeat
defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false
Set a blazingly fast keyboard repeat rate
defaults write NSGlobalDomain KeyRepeat -int 0
Automatically illuminate built-in MacBook keyboard in low light
defaults write com.apple.BezelServices kDim -bool true
Turn off keyboard illumination when computer is not used for 5 minutes
defaults write com.apple.BezelServices kDimTime -int 300
Set language and text formats
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
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”
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
Enable HiDPI display modes (requires restart)
sudo defaults write /Library/Preferences/com.apple.windowserver DisplayResolutionEnabled -bool true
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
Finder: show hidden files by default
defaults write com.apple.finder AppleShowAllFiles -bool true
Finder: show all filename extensions
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
Finder: show status bar
defaults write com.apple.finder ShowStatusBar -bool true
Finder: allow text selection in Quick Look
defaults write com.apple.finder QLEnableTextSelection -bool true
Display full POSIX path as Finder window title
defaults write com.apple.finder _FXShowPosixPathInTitle -bool true
When performing a search, search the current folder by default
defaults write com.apple.finder FXDefaultSearchScope -string “SCcf”
Disable the warning when changing a file extension
defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
Avoid creating .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
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
Use list view in all Finder windows by default
You can set the other view modes by using one of these four-letter codes: icnv, clmv, Flwv
defaults write com.apple.finder FXPreferredViewStyle -string “Nlsv”
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
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
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
Don’t group windows by application in Mission Control (i.e. use the old Exposé behavior instead)
defaults write com.apple.dock expose-group-by-app -bool false
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
Reset Launchpad
find ~/Library/Application Support/Dock -name “*.db” -maxdepth 1 -delete
Add iOS Simulator to Launchpad
ln -s /Applications/Xcode.app/Contents/Applications/iPhone Simulator.app /Applications/iOS Simulator.app
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
Set Safari’s home page to about:blank for faster loading
defaults write com.apple.Safari HomePage -string “about:blank”
Prevent Safari from opening ‘safe’ files automatically after downloading
defaults write com.apple.Safari AutoOpenSafeDownloads -bool false
Allow hitting the Backspace key to go to the previous page in history
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2BackspaceKeyNavigationEnabled -bool true
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
defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2
Enable Safari’s debug menu
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
Remove useless icons from Safari’s bookmarks bar
defaults write com.apple.Safari ProxiesInBookmarksBar “()”
Enable the Develop menu and the Web Inspector in Safari
defaults write com.apple.Safari IncludeDevelopMenu -bool true
defaults write com.apple.Safari WebKitDeveloperExtrasEnabledPreferenceKey -bool true
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DeveloperExtrasEnabled -bool true
Add a context menu item for showing the Web Inspector in web views
defaults write NSGlobalDomain WebKitDeveloperExtras -bool true
Enable the WebKit Developer Tools in the Mac App Store
defaults write com.apple.appstore WebKitDeveloperExtras -bool true
iTunes
Disable the iTunes store link arrows
defaults write com.apple.iTunes show-store-link-arrows -bool false
Disable the Genius sidebar in iTunes
defaults write com.apple.iTunes disableGeniusSidebar -bool true
Disable the Ping sidebar in 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
Disable radio stations in iTunes
defaults write com.apple.iTunes disableRadio -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
Add the keyboard shortcut ⌘ + Enter to send an email in Mail.app
defaults write com.apple.mail NSUserKeyEquivalents -dict-add “Send” “@U21a9”
Terminal
Enable “focus follows mouse” for Terminal.app and all X11 apps i.e. 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
Prevent Time Machine from prompting to use new hard drives as backup volume
defaults write com.apple.TimeMachine DoNotOfferNewDisksForBackup -bool true
Address Book, Dashboard, iCal, TextEdit, 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 (pre–10.8)
defaults write com.apple.iCal IncludeDebugMenu -bool true
Use plain text mode for new TextEdit documents
defaults write com.apple.TextEdit RichText -int 0
Open and save files as UTF–8 in TextEdit
defaults write com.apple.TextEdit PlainTextEncoding -int 4
defaults write com.apple.TextEdit PlainTextEncodingForWrite -int 4
Enable the debug menu in Disk Utility
defaults write com.apple.DiskUtility DUDebugMenuEnabled -bool true
defaults write com.apple.DiskUtility advanced-image-options -bool true
Way to rip off other people’s work without giving credit. http://mths.be/osx
Not cool.
Mathias Bynens recently posted..How to support full Unicode in MySQL databases
Your right, definitely not cool. I updated the post to include a link back to your script. I had intended to find other resources, but yours ended up being so complete I did not have too.