101 Ways to Tweak OS X Using Terminal

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. If you’re looking to turbo-charge your Terminal check out Zeus 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

Some people don’t like to see transparency in the menubar this setting will disable the transparency.

defaults write NSGlobalDomain AppleEnableMenuBarTransparency -bool false

defaults write com.apple.menuextra.battery ShowPercent -string “NO”
defaults write com.apple.menuextra.battery ShowTime -string “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”

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”

Mail

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 foo@example.com instead of Foo Bar <foo@example.com> 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

So there you have it, 101 ways to tweak your Mac via the Terminal. Do you have any terminal tweaks you’d like to share? Stick them in the comments.
About Joe Cotellese

Joe is the founder of Learning OS X. He's often spending way too much time playing with new Mac software in order to improve his ability at "Getting Things Done."

Comments

  1. The domain com.apple.menuextra.battery does not exist.

  2. Just to make one thing clear, to show the status bar by default, all I need to do nothing more than enter:
    defaults write com.apple.finder ShowStatusBar -bool true
    in Terminal and press Return? There are no other commands, options or arguments? I rarely have used Terminal with my Mac, though I’m getting comfortable with a CLI though a Linux class I’m taking. Still, I certainly don’t want to mess up my Mac because it’s my primary computer.

    Many thanks,
    Ross

    • Joe Cotellese says:

      Yeah, it’s pretty simple. There is one more step though. You’ll need to either reboot or just relaunch Finder. To relaunch Finder press Command-Option-Escape to open up the Force Quit Applications window. Then, select Finder and click “Relaunch”

      If you want to turn that off just run the same defaults command again and type false instead of true.

      I hope you find this helpful. Also, did you enter the TextExpander giveaway contest? See – http://www2.learningosx.com/text-expander-review/

  3. helloconnect says:

    Hello: this is simply a fantastic list! Thankyou ever much. I went thru it line by line and added what I would like.
    question 1:
    Is there a way for Terminal to create a text file of all the changes I made in this session? (so I backup copy of the changes if/when I ever need to reinstall fresh like I had to for yosemite osx versus upgrade from mavericks)?

    question 2:
    Are there any terminal commands that enable me to access the following utility apps from the menu item bar (top right?)
    e.g. system preferences
    e.g. activity monitor
    e.g. terminal app
    e.g. favourites listing (I did add recent applications listing to my dock far right via terminal. that is most helpful)

    question 3:
    I did not do the trackpad changes as after 3 years I am still struggling with the trackpad. I am very good with the iphone. The touch is natural but the trackpad does odd things for me.
    a) I lost pinch and zoom when I installed yosemite. I dont know how to get it back
    b) when I am google maps, I cannot move the map over or down. It appears to be stuck in “zoom in and out mode”

    My settings for trackpad thru the GUI, are
    Point and Click:
    tap to click = 1finger
    secondary click = bottom right corner
    unchecked lookup, unchecked three finger drag

    Scroll and Zoom:
    checked 3 of 4 (scroll direction natural, zoom in and out, rotation)

    More Gestures:
    all unchecked

    any ideas?

  4. helloconnect says:

    hello again, after doing some of the changes, I noticed I can no longer hover over battery icon in menu bar, (it now requires a click), to see which apps are using significant energy. How do I revert this back?
    thankyou

  5. Great list – thanks so much!

    Update for el Capitan and Xcode 7.1.2:

    sudo ln -s /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app “/Applications/iOS Simulator.app”

  6. Absar ahmed says:

    Hi,
    I would like to be able to reorder the list of Spotlight search results in System Preferences so the results appear in that order. e.g. I would like Definitions to be on the top of results. Can you please advise a hack for that.

    Kind regards

Speak Your Mind

*