MacOS 不常用的各种命令

一.界面相关的设置:

1.#osascript 桌面消息通知,有些时候写脚本定时出发桌面的消息通知用
osascript -e 'display notification "Come on Come on turn the radio on" with title "您有信息消息啦" subtitle "Hello,Jove"'
#效果这样子如下:

2.#设置计算机名称(也可以通过系统偏好设置→共享)
sudo scutil --set ComputerName "0x6D746873"
sudo scutil --set HostName "0x6D746873"
sudo scutil --set LocalHostName "0x6D746873"
sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string "0x6D746873"
3.#待机延迟设置为24小时(默认设置为1小时)
sudo pmset -a standbydelay 86400
4.#禁用开机声音
sudo nvram SystemAudioVolume=" "
5.#禁用Yosemite菜单栏和其他位置的透明度
defaults write com.apple.universalaccess reduceTransparency -bool true
6.#将高亮颜色设置为绿色
defaults write NSGlobalDomain AppleHighlightColor -string "0.764700 0.976500 0.568600"
7.#将侧边栏图标大小设置为中等
defaults write NSGlobalDomain NSTableViewDefaultSizeMode -int 2
8.#始终显示滚动条 其他值WhenScrolling、Automatic
defaults write NSGlobalDomain AppleShowScrollBars -string "Always"
9.#增加Cocoa应用程序的窗口大小调整速度
defaults write NSGlobalDomain NSWindowResizeTime -float 0.001
10.#禁用“您确定要打开此应用程序吗?”对话框
defaults write com.apple.LaunchServices LSQuarantine -bool false
11.#在登录界面,单击时钟时显示IP地址,主机名,操作系统版本等
sudo defaults write /Library/Preferences/com.apple.loginwindow AdminHostInfo HostName
12.#永远不要进入电脑睡眠模式
sudo systemsetup -setcomputersleep Off > /dev/null
13.#禁用通知中心并删除菜单栏图标
defaults write NSGlobalDomain NSAutomaticCapitalizationEnabled -bool false
二.SSD相关设置
1.#SSD硬盘引用休眠模式
sudo pmset -a hibernatemode 0
2.#删除睡眠映像文件以节省磁盘空间,这个文件占用1G空间.
sudo rm /private/var/vm/sleepimage
然后新建一个空的睡眠映像文件
sudo touch /private/var/vm/sleepimage
帮文件上锁保护,禁止写入
sudo chflags uchg /private/var/vm/sleepimage
三.触控板或鼠标,键盘,蓝牙配件等输入设备
1.#提高蓝牙耳机/耳机的音质
defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" -int 40
2.#为所有控件启用键盘控制,例如对话框的是否选择等等....
defaults write NSGlobalDomain AppleKeyboardUIMode -int 3
3.#停止iTunes响应键盘媒体键
launchctl unload -w /System/Library/LaunchAgents/com.apple.rcd.plist 2> /dev/null
四.屏幕设置
1.#睡眠或屏幕保护程序开始后立即启用密码输入
defaults write com.apple.screensaver askForPassword -int 1
defaults write com.apple.screensaver askForPasswordDelay -int 0
2.#将屏幕截图保存到桌面
defaults write com.apple.screencapture location -string "${HOME}/Desktop"
3.#屏幕截图保存文件的格式,默认png(其他选项:BMP,GIF,JPG,PDF,TIFF)
defaults write com.apple.screencapture type -string "png"
4.#屏幕截图禁用边框阴影
defaults write com.apple.screencapture disable-shadow -bool true
5.#在非苹果显示器上启用子像素字体渲染
defaults write NSGlobalDomain AppleFontSmoothing -int 1
6.#启用HiDPI显示模式,需要重启
sudo defaults write /Library/Preferences/com.apple.windowserver DisplayResolutionEnabled -bool true

五.Finder文件管理器配置相关

1.#Finder:允许通过⌘+ Q退出,这样子将会隐藏桌面图标.
defaults write com.apple.finder QuitMenuItem -bool true
2.#在桌面上显示硬盘驱动器,服务器和可移动媒体的图标
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
3.#默认显示隐藏文件,也可以使用快捷键shift+commadn+.
defaults write com.apple.finder AppleShowAllFiles -bool true
4.#显示所有文件扩展名
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
5.#显示状态栏
defaults write com.apple.finder ShowStatusBar -bool true
6.#显示当前窗口所在的路径
defaults write com.apple.finder ShowPathbar -bool true
7.#将完整POSIX路径显示为Finder窗口标题
defaults write com.apple.finder _FXShowPosixPathInTitle -bool true
8.#按名称排序时,文件夹在前,文件在后
defaults write com.apple.finder _FXSortFoldersFirst -bool true
9.#执行搜索时,默认搜索当前文件夹
defaults write com.apple.finder FXDefaultSearchScope -string "SCcf"
10.#更改文件扩展名时禁用警告
defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
11.#避免在网络或USB卷上创建.DS_Store文件
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true
12.#禁用磁盘映像验证

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



# Show item info near 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



# Show item info to the right of the icons on the desktop

/usr/libexec/PlistBuddy -c "Set DesktopViewSettings:IconViewSettings:labelOnBottom false" ~/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



# Use list view in all Finder windows by default

# Four-letter codes for the other view modes: `icnv`, `clmv`, `Flwv`

defaults write com.apple.finder FXPreferredViewStyle -string "Nlsv"



# Disable the warning before emptying the Trash

defaults write com.apple.finder WarnOnEmptyTrash -bool false



# 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



# Show the /Volumes folder

sudo chflags nohidden /Volumes



# Remove Dropbox’s green checkmark icons in Finder

file=/Applications/Dropbox.app/Contents/Resources/emblem-dropbox-uptodate.icns

[ -e "${file}" ] && mv -f "${file}" "${file}.bak"



# Expand the following File Info panes:

# “General”, “Open with”, and “Sharing & Permissions”

defaults write com.apple.finder FXInfoPanesExpanded -dict \

General -bool true \

OpenWith -bool true \

Privileges -bool true



###############################################################################

# Dock, Dashboard, and hot corners #

###############################################################################



# Enable highlight hover effect for the grid view of a stack (Dock)

defaults write com.apple.dock mouse-over-hilite-stack -bool true



# Set the icon size of Dock items to 36 pixels

defaults write com.apple.dock tilesize -int 36



# Change minimize/maximize window effect

defaults write com.apple.dock mineffect -string "scale"



# Minimize windows into their application’s icon

defaults write com.apple.dock minimize-to-application -bool true



# 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



# 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



# Show only open applications in the Dock

#defaults write com.apple.dock static-only -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



# Disable Dashboard

defaults write com.apple.dashboard mcx-disabled -bool true



# Don’t show Dashboard as a Space

defaults write com.apple.dock dashboard-in-overlay -bool true



# Don’t automatically rearrange Spaces based on most recent use

defaults write com.apple.dock mru-spaces -bool false



# 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



# 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



# Don’t show recent applications in Dock

defaults write com.apple.dock show-recents -bool false



# Disable the Launchpad gesture (pinch with thumb and three fingers)

#defaults write com.apple.dock showLaunchpadGestureEnabled -int 0



# Reset Launchpad, but keep the desktop wallpaper intact

find "${HOME}/Library/Application Support/Dock" -name "*-*.db" -maxdepth 1 -delete



# Add iOS & Watch Simulator to Launchpad

sudo ln -sf "/Applications/Xcode.app/Contents/Developer/Applications/Simulator.app" "/Applications/Simulator.app"

sudo ln -sf "/Applications/Xcode.app/Contents/Developer/Applications/Simulator (Watch).app" "/Applications/Simulator (Watch).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

# Possible values:

# 0: no-op

# 2: Mission Control

# 3: Show application windows

# 4: Desktop

# 5: Start screen saver

# 6: Disable screen saver

# 7: Dashboard

# 10: Put display to sleep

# 11: Launchpad

# 12: Notification Center

# 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 #

###############################################################################



# Privacy: don’t send search queries to Apple

defaults write com.apple.Safari UniversalSearchEnabled -bool false

defaults write com.apple.Safari SuppressSearchSuggestions -bool true



# Press Tab to highlight each item on a web page

defaults write com.apple.Safari WebKitTabToLinksPreferenceKey -bool true

defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2TabsToLinks -bool true



# Show the full URL in the address bar (note: this still hides the scheme)

defaults write com.apple.Safari ShowFullURLInSmartSearchField -bool true



# 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



# Hide Safari’s sidebar in Top Sites

defaults write com.apple.Safari ShowSidebarInTopSites -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 continuous spellchecking

defaults write com.apple.Safari WebContinuousSpellCheckingEnabled -bool true

# Disable auto-correct

defaults write com.apple.Safari WebAutomaticSpellingCorrectionEnabled -bool false



# Disable AutoFill

defaults write com.apple.Safari AutoFillFromAddressBook -bool false

defaults write com.apple.Safari AutoFillPasswords -bool false

defaults write com.apple.Safari AutoFillCreditCardData -bool false

defaults write com.apple.Safari AutoFillMiscellaneousForms -bool false



# Warn about fraudulent websites

defaults write com.apple.Safari WarnAboutFraudulentWebsites -bool true



# Disable plug-ins

defaults write com.apple.Safari WebKitPluginsEnabled -bool false

defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2PluginsEnabled -bool false



# Disable Java

defaults write com.apple.Safari WebKitJavaEnabled -bool false

defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaEnabled -bool false



# Block pop-up windows

defaults write com.apple.Safari WebKitJavaScriptCanOpenWindowsAutomatically -bool false

defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaScriptCanOpenWindowsAutomatically -bool false



# Disable auto-playing video

#defaults write com.apple.Safari WebKitMediaPlaybackAllowsInline -bool false

#defaults write com.apple.SafariTechnologyPreview WebKitMediaPlaybackAllowsInline -bool false

#defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2AllowsInlineMediaPlayback -bool false

#defaults write com.apple.SafariTechnologyPreview com.apple.Safari.ContentPageGroupIdentifier.WebKit2AllowsInlineMediaPlayback -bool false



# Enable “Do Not Track”

defaults write com.apple.Safari SendDoNotTrackHTTPHeader -bool true



# Update extensions automatically

defaults write com.apple.Safari InstallExtensionUpdatesAutomatically -bool true



###############################################################################

# 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 `[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"



# Display emails in threaded mode, sorted by date (oldest at the top)

defaults write com.apple.mail DraftsViewerAttributes -dict-add "DisplayInThreadedMode" -string "yes"

defaults write com.apple.mail DraftsViewerAttributes -dict-add "SortedDescending" -string "yes"

defaults write com.apple.mail DraftsViewerAttributes -dict-add "SortOrder" -string "received-date"



# Disable inline attachments (just show the icons)

defaults write com.apple.mail DisableInlineAttachmentViewing -bool true



# Disable automatic spell checking

defaults write com.apple.mail SpellCheckingBehavior -string "NoSpellCheckingEnabled"



###############################################################################

# Spotlight #

###############################################################################



# Hide Spotlight tray-icon (and subsequent helper)

#sudo chmod 600 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search

# Disable Spotlight indexing for any volume that gets mounted and has not yet

# been indexed before.

# Use `sudo mdutil -i off "/Volumes/foo"` to stop indexing any volume.

sudo defaults write /.Spotlight-V100/VolumeConfiguration Exclusions -array "/Volumes"

# Change indexing order and disable some search results

# Yosemite-specific search results (remove them if you are using macOS 10.9 or older):

# MENU_DEFINITION

# MENU_CONVERSION

# MENU_EXPRESSION

# MENU_SPOTLIGHT_SUGGESTIONS (send search queries to Apple)

# MENU_WEBSEARCH (send search queries to Apple)

# MENU_OTHER

defaults write com.apple.spotlight orderedItems -array \

'{"enabled" = 1;"name" = "APPLICATIONS";}' \

'{"enabled" = 1;"name" = "SYSTEM_PREFS";}' \

'{"enabled" = 1;"name" = "DIRECTORIES";}' \

'{"enabled" = 1;"name" = "PDF";}' \

'{"enabled" = 1;"name" = "FONTS";}' \

'{"enabled" = 0;"name" = "DOCUMENTS";}' \

'{"enabled" = 0;"name" = "MESSAGES";}' \

'{"enabled" = 0;"name" = "CONTACT";}' \

'{"enabled" = 0;"name" = "EVENT_TODO";}' \

'{"enabled" = 0;"name" = "IMAGES";}' \

'{"enabled" = 0;"name" = "BOOKMARKS";}' \

'{"enabled" = 0;"name" = "MUSIC";}' \

'{"enabled" = 0;"name" = "MOVIES";}' \

'{"enabled" = 0;"name" = "PRESENTATIONS";}' \

'{"enabled" = 0;"name" = "SPREADSHEETS";}' \

'{"enabled" = 0;"name" = "SOURCE";}' \

'{"enabled" = 0;"name" = "MENU_DEFINITION";}' \

'{"enabled" = 0;"name" = "MENU_OTHER";}' \

'{"enabled" = 0;"name" = "MENU_CONVERSION";}' \

'{"enabled" = 0;"name" = "MENU_EXPRESSION";}' \

'{"enabled" = 0;"name" = "MENU_WEBSEARCH";}' \

'{"enabled" = 0;"name" = "MENU_SPOTLIGHT_SUGGESTIONS";}'

# Load new settings before rebuilding the index

killall mds > /dev/null 2>&1

# Make sure indexing is enabled for the main volume

sudo mdutil -i on / > /dev/null

# Rebuild the index from scratch

sudo mdutil -E / > /dev/null



###############################################################################

# Terminal & iTerm 2 #

###############################################################################



# Only use UTF-8 in Terminal.app

defaults write com.apple.terminal StringEncodings -array 4



# Use a modified version of the Solarized Dark theme by default in Terminal.app

osascript <<EOD



tell application "Terminal"



local allOpenedWindows

local initialOpenedWindows

local windowID

set themeName to "Solarized Dark xterm-256color"



(* Store the IDs of all the open terminal windows. *)

set initialOpenedWindows to id of every window



(* Open the custom theme so that it gets added to the list

of available terminal themes (note: this will open two

additional terminal windows). *)

do shell script "open '$HOME/init/" & themeName & ".terminal'"



(* Wait a little bit to ensure that the custom theme is added. *)

delay 1



(* Set the custom theme as the default terminal theme. *)

set default settings to settings set themeName



(* Get the IDs of all the currently opened terminal windows. *)

set allOpenedWindows to id of every window



repeat with windowID in allOpenedWindows



(* Close the additional windows that were opened in order

to add the custom theme to the list of terminal themes. *)

if initialOpenedWindows does not contain windowID then

close (every window whose id is windowID)



(* Change the theme for the initial opened terminal windows

to remove the need to close them in order for the custom

theme to be applied. *)

else

set current settings of tabs of (every window whose id is windowID) to settings set themeName

end if



end repeat



end tell



EOD



# 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



# Enable Secure Keyboard Entry in Terminal.app

# See: https://security.stackexchange.com/a/47786/8918

defaults write com.apple.terminal SecureKeyboardEntry -bool true



# Disable the annoying line marks

defaults write com.apple.Terminal ShowLineMarks -int 0



# Install the Solarized Dark theme for iTerm

open "${HOME}/init/Solarized Dark.itermcolors"



# Don’t display the annoying prompt when quitting iTerm

defaults write com.googlecode.iterm2 PromptOnQuit -bool false



###############################################################################

# Time Machine #

###############################################################################



# Prevent 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

hash tmutil &> /dev/null && sudo tmutil disablelocal



###############################################################################

# Activity Monitor #

###############################################################################



# Show the main window when launching Activity Monitor

defaults write com.apple.ActivityMonitor OpenMainWindow -bool true



# Visualize CPU usage in the Activity Monitor Dock icon

defaults write com.apple.ActivityMonitor IconType -int 5



# Show all processes in Activity Monitor

defaults write com.apple.ActivityMonitor ShowCategory -int 0



# Sort Activity Monitor results by CPU usage

defaults write com.apple.ActivityMonitor SortColumn -string "CPUUsage"

defaults write com.apple.ActivityMonitor SortDirection -int 0



###############################################################################

# 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



# Auto-play videos when opened with QuickTime Player

defaults write com.apple.QuickTimePlayerX MGPlayMovieOnOpen -bool true



###############################################################################

# Mac App Store #

###############################################################################



# Enable the WebKit Developer Tools in the Mac App Store

defaults write com.apple.appstore WebKitDeveloperExtras -bool true



# Enable Debug Menu in the Mac App Store

defaults write com.apple.appstore ShowDebugMenu -bool true



# Enable the automatic update check

defaults write com.apple.SoftwareUpdate AutomaticCheckEnabled -bool true



# Check for software updates daily, not just once per week

defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1



# Download newly available updates in background

defaults write com.apple.SoftwareUpdate AutomaticDownload -int 1



# Install System data files & security updates

defaults write com.apple.SoftwareUpdate CriticalUpdateInstall -int 1



# Automatically download apps purchased on other Macs

defaults write com.apple.SoftwareUpdate ConfigDataInstall -int 1



# Turn on app auto-update

defaults write com.apple.commerce AutoUpdate -bool true



# Allow the App Store to reboot machine on macOS updates

defaults write com.apple.commerce AutoUpdateRestartRequired -bool true



###############################################################################

# Photos #

###############################################################################



# Prevent Photos from opening automatically when devices are plugged in

defaults -currentHost write com.apple.ImageCapture disableHotPlug -bool true



###############################################################################

# Messages #

###############################################################################



# Disable automatic emoji substitution (i.e. use plain text smileys)

defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "automaticEmojiSubstitutionEnablediMessage" -bool false



# Disable smart quotes as it’s annoying for messages that contain code

defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "automaticQuoteSubstitutionEnabled" -bool false



# Disable continuous spell checking

defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "continuousSpellCheckingEnabled" -bool false



###############################################################################

# Google Chrome & Google Chrome Canary #

###############################################################################



# Disable the all too sensitive backswipe on trackpads

defaults write com.google.Chrome AppleEnableSwipeNavigateWithScrolls -bool false

defaults write com.google.Chrome.canary AppleEnableSwipeNavigateWithScrolls -bool false



# Disable the all too sensitive backswipe on Magic Mouse

defaults write com.google.Chrome AppleEnableMouseSwipeNavigateWithScrolls -bool false

defaults write com.google.Chrome.canary AppleEnableMouseSwipeNavigateWithScrolls -bool false



# Use the system-native print preview dialog

defaults write com.google.Chrome DisablePrintPreview -bool true

defaults write com.google.Chrome.canary DisablePrintPreview -bool true



# Expand the print dialog by default

defaults write com.google.Chrome PMPrintingExpandedStateForPrint2 -bool true

defaults write com.google.Chrome.canary PMPrintingExpandedStateForPrint2 -bool true



###############################################################################

# GPGMail 2 #

###############################################################################



# Disable signing emails by default

defaults write ~/Library/Preferences/org.gpgtools.gpgmail SignNewEmailsByDefault -bool false



###############################################################################

# Opera & Opera Developer #

###############################################################################



# Expand the print dialog by default

defaults write com.operasoftware.Opera PMPrintingExpandedStateForPrint2 -boolean true

defaults write com.operasoftware.OperaDeveloper PMPrintingExpandedStateForPrint2 -boolean true



###############################################################################

# SizeUp.app #

###############################################################################



# Start SizeUp at login

defaults write com.irradiatedsoftware.SizeUp StartAtLogin -bool true



# Don’t show the preferences window on next start

defaults write com.irradiatedsoftware.SizeUp ShowPrefsOnNextStart -bool false



###############################################################################

# Sublime Text #

###############################################################################



# Install Sublime Text settings

cp -r init/Preferences.sublime-settings ~/Library/Application\ Support/Sublime\ Text*/Packages/User/Preferences.sublime-settings 2> /dev/null



###############################################################################

# Spectacle.app #

###############################################################################



# Set up my preferred keyboard shortcuts

cp -r init/spectacle.json ~/Library/Application\ Support/Spectacle/Shortcuts.json 2> /dev/null



###############################################################################

# Transmission.app #

###############################################################################



# Use `~/Documents/Torrents` to store incomplete downloads

defaults write org.m0k.transmission UseIncompleteDownloadFolder -bool true

defaults write org.m0k.transmission IncompleteDownloadFolder -string "${HOME}/Documents/Torrents"



# Use `~/Downloads` to store completed downloads

defaults write org.m0k.transmission DownloadLocationConstant -bool true



# Don’t prompt for confirmation before downloading

defaults write org.m0k.transmission DownloadAsk -bool false

defaults write org.m0k.transmission MagnetOpenAsk -bool false



# Don’t prompt for confirmation before removing non-downloading active transfers

defaults write org.m0k.transmission CheckRemoveDownloading -bool true



# Trash original torrent files

defaults write org.m0k.transmission DeleteOriginalTorrent -bool true



# Hide the donate message

defaults write org.m0k.transmission WarningDonate -bool false

# Hide the legal disclaimer

defaults write org.m0k.transmission WarningLegal -bool false



# IP block list.

# Source: https://giuliomac.wordpress.com/2014/02/19/best-blocklist-for-transmission/

defaults write org.m0k.transmission BlocklistNew -bool true

defaults write org.m0k.transmission BlocklistURL -string "http://john.bitsurge.net/public/biglist.p2p.gz"

defaults write org.m0k.transmission BlocklistAutoUpdate -bool true



# Randomize port on launch

defaults write org.m0k.transmission RandomPort -bool true



###############################################################################

# 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 bar 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



# Hide the app in the background if it’s not the front-most window

defaults write com.twitter.twitter-mac HideInBackground -bool true



###############################################################################

# Tweetbot.app #

###############################################################################



# Bypass the annoyingly slow t.co URL shortener

defaults write com.tapbots.TweetbotMac OpenURLsDirectly -bool true



###############################################################################

# Kill affected applications #

###############################################################################



for app in "Activity Monitor" \

"Address Book" \

"Calendar" \

"cfprefsd" \

"Contacts" \

"Dock" \

"Finder" \

"Google Chrome Canary" \

"Google Chrome" \

"Mail" \

"Messages" \

"Opera" \

"Photos" \

"Safari" \

"SizeUp" \

"Spectacle" \

"SystemUIServer" \

"Terminal" \

"Transmission" \

"Tweetbot" \

"Twitter" \

"iCal"; do

killall "${app}" &> /dev/null

done

echo "Done. Note that some of these changes require a logout/restart to take effect."