├── hosts ├── README.md ├── tasks ├── dot-osx.yml ├── zsh.yml └── main.yml └── files └── dot-osx /hosts: -------------------------------------------------------------------------------- 1 | localhost ansible_connection=local 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # My OS X setup 2 | 3 | After installing Xcode, Ansible and Homebrew then run: 4 | 5 | ``` 6 | ansible-playbook tasks/main.yml -i hosts -K 7 | ``` 8 | -------------------------------------------------------------------------------- /tasks/dot-osx.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # .osx from (https://github.com/mathiasbynens/dotfiles) 3 | - name: Copy .macos file into place 4 | copy: 5 | src: ../files/dot-osx 6 | dest: ~/.macos 7 | mode: 0700 8 | 9 | - name: Run .macos 10 | ignore_errors: yes 11 | shell: ~/.macos 12 | -------------------------------------------------------------------------------- /tasks/zsh.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Install zsh 3 | homebrew: name=zsh 4 | 5 | - name: Add zsh to /etc/shells 6 | shell: "grep '^/usr/local/bin/zsh$' /etc/shells || echo '/usr/local/bin/zsh' >> /etc/shells" 7 | become: True 8 | become_user: root 9 | 10 | - name: Use zsh 11 | shell: chsh -s /usr/local/bin/zsh 12 | 13 | - stat: path=~/.oh-my-zsh 14 | register: oh_my_zsh 15 | 16 | - name: Install oh-my-zsh 17 | shell: curl -L http://install.ohmyz.sh | sh 18 | when: (use_zsh == True) and (oh_my_zsh.stat.isdir is undefined) 19 | 20 | - name: Init rbenv for zsh 21 | shell: grep 'eval "$(rbenv init -)"' ~/.zshrc || echo 'eval "$(rbenv init -)"' >> ~/.zshrc 22 | -------------------------------------------------------------------------------- /tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | 4 | vars: 5 | home: "{{ lookup('env','HOME') }}" 6 | 7 | brews: 8 | - ack 9 | - awscli 10 | - freetds 11 | - git 12 | - graphviz 13 | - mysql56 14 | - node 15 | - nodenv 16 | - openssl 17 | - rbenv 18 | - redis 19 | - ruby-build 20 | - tmux 21 | - v8 22 | - vim 23 | - wget 24 | - phantomjs 25 | - imagemagick 26 | casks: 27 | - atom 28 | - cloudup 29 | - flux 30 | - iterm2 31 | - rowanj-gitx 32 | - sequel-pro 33 | - skype 34 | - slack 35 | - spectacle 36 | - transmission 37 | - vagrant 38 | - virtualbox 39 | - vlc 40 | 41 | tasks: 42 | - name: Install brews 43 | homebrew: name={{item}} state=present 44 | with_items: "{{ brews }}" 45 | 46 | - name: Create home LaunchAgents directory 47 | file: path={{ home }}/Library/LaunchAgents state=directory 48 | 49 | - name: Start services at login 50 | file: src=/usr/local/opt/{{ item }}/homebrew.mxcl.{{ item }}.plist path=~/Library/LaunchAgents/homebrew.mxcl.{{ item }}.plist state=link force=yes 51 | with_items: 52 | - mysql56 53 | - redis 54 | 55 | - name: Setup launch agents for services 56 | command: launchctl load {{ home }}/Library/LaunchAgents/homebrew.mxcl.{{ item }}.plist 57 | with_items: 58 | - mysql56 59 | - redis 60 | 61 | - name: Install brew cask 62 | shell: 'brew install caskroom/cask/brew-cask' 63 | 64 | - name: Install casks 65 | homebrew_cask: name={{item}} state=present 66 | with_items: "{{ casks }}" 67 | 68 | - include: zsh.yml 69 | tags: zsh 70 | 71 | - include: dot-osx.yml 72 | tags: dot-osx 73 | 74 | # Update, upgrade and cleanup brews. 75 | 76 | - name: Update and upgrade brews 77 | homebrew: update_homebrew=yes upgrade_all=yes 78 | 79 | - name: Cleanup brews 80 | shell: 'brew cleanup' 81 | -------------------------------------------------------------------------------- /files/dot-osx: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # ~/.macos — https://mths.be/macos 4 | 5 | # Close any open System Preferences panes, to prevent them from overriding 6 | # settings we’re about to change 7 | osascript -e 'tell application "System Preferences" to quit' 8 | 9 | # Ask for the administrator password upfront 10 | sudo -v 11 | 12 | # Keep-alive: update existing `sudo` time stamp until `.macos` has finished 13 | while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null & 14 | 15 | ############################################################################### 16 | # General UI/UX # 17 | ############################################################################### 18 | 19 | # Set computer name (as done via System Preferences → Sharing) 20 | #sudo scutil --set ComputerName "0x6D746873" 21 | #sudo scutil --set HostName "0x6D746873" 22 | #sudo scutil --set LocalHostName "0x6D746873" 23 | #sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string "0x6D746873" 24 | 25 | # Set standby delay to 24 hours (default is 1 hour) 26 | sudo pmset -a standbydelay 86400 27 | 28 | # Disable the sound effects on boot 29 | sudo nvram SystemAudioVolume=" " 30 | 31 | # Disable transparency in the menu bar and elsewhere on Yosemite 32 | defaults write com.apple.universalaccess reduceTransparency -bool true 33 | 34 | # Menu bar: hide the Time Machine, Volume, and User icons 35 | for domain in ~/Library/Preferences/ByHost/com.apple.systemuiserver.*; do 36 | defaults write "${domain}" dontAutoLoad -array \ 37 | "/System/Library/CoreServices/Menu Extras/TimeMachine.menu" \ 38 | "/System/Library/CoreServices/Menu Extras/Volume.menu" \ 39 | "/System/Library/CoreServices/Menu Extras/User.menu" 40 | done 41 | defaults write com.apple.systemuiserver menuExtras -array \ 42 | "/System/Library/CoreServices/Menu Extras/Bluetooth.menu" \ 43 | "/System/Library/CoreServices/Menu Extras/AirPort.menu" \ 44 | "/System/Library/CoreServices/Menu Extras/Battery.menu" \ 45 | "/System/Library/CoreServices/Menu Extras/Clock.menu" 46 | 47 | # Set highlight color to green 48 | defaults write NSGlobalDomain AppleHighlightColor -string "0.764700 0.976500 0.568600" 49 | 50 | # Set sidebar icon size to medium 51 | defaults write NSGlobalDomain NSTableViewDefaultSizeMode -int 2 52 | 53 | # Always show scrollbars 54 | defaults write NSGlobalDomain AppleShowScrollBars -string "WhenScrolling" 55 | # Possible values: `WhenScrolling`, `Automatic` and `Always` 56 | 57 | # Disable the over-the-top focus ring animation 58 | defaults write NSGlobalDomain NSUseAnimatedFocusRing -bool false 59 | 60 | # Disable smooth scrolling 61 | # (Uncomment if you’re on an older Mac that messes up the animation) 62 | #defaults write NSGlobalDomain NSScrollAnimationEnabled -bool false 63 | 64 | # Increase window resize speed for Cocoa applications 65 | defaults write NSGlobalDomain NSWindowResizeTime -float 0.001 66 | 67 | # Expand save panel by default 68 | defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true 69 | defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode2 -bool true 70 | 71 | # Expand print panel by default 72 | defaults write NSGlobalDomain PMPrintingExpandedStateForPrint -bool true 73 | defaults write NSGlobalDomain PMPrintingExpandedStateForPrint2 -bool true 74 | 75 | # Save to disk (not to iCloud) by default 76 | defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false 77 | 78 | # Automatically quit printer app once the print jobs complete 79 | defaults write com.apple.print.PrintingPrefs "Quit When Finished" -bool true 80 | 81 | # Disable the “Are you sure you want to open this application?” dialog 82 | defaults write com.apple.LaunchServices LSQuarantine -bool false 83 | 84 | # Remove duplicates in the “Open With” menu (also see `lscleanup` alias) 85 | /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user 86 | 87 | # Display ASCII control characters using caret notation in standard text views 88 | # Try e.g. `cd /tmp; unidecode "\x{0000}" > cc.txt; open -e cc.txt` 89 | defaults write NSGlobalDomain NSTextShowsControlCharacters -bool true 90 | 91 | # Disable Resume system-wide 92 | defaults write com.apple.systempreferences NSQuitAlwaysKeepsWindows -bool false 93 | 94 | # Disable automatic termination of inactive apps 95 | defaults write NSGlobalDomain NSDisableAutomaticTermination -bool true 96 | 97 | # Disable the crash reporter 98 | #defaults write com.apple.CrashReporter DialogType -string "none" 99 | 100 | # Set Help Viewer windows to non-floating mode 101 | defaults write com.apple.helpviewer DevMode -bool true 102 | 103 | # Fix for the ancient UTF-8 bug in QuickLook (https://mths.be/bbo) 104 | # Commented out, as this is known to cause problems in various Adobe apps :( 105 | # See https://github.com/mathiasbynens/dotfiles/issues/237 106 | #echo "0x08000100:0" > ~/.CFUserTextEncoding 107 | 108 | # Reveal IP address, hostname, OS version, etc. when clicking the clock 109 | # in the login window 110 | sudo defaults write /Library/Preferences/com.apple.loginwindow AdminHostInfo HostName 111 | 112 | # Restart automatically if the computer freezes 113 | sudo systemsetup -setrestartfreeze on 114 | 115 | # Never go into computer sleep mode 116 | sudo systemsetup -setcomputersleep Off > /dev/null 117 | 118 | # Disable Notification Center and remove the menu bar icon 119 | # launchctl unload -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist 2> /dev/null 120 | 121 | # Disable smart quotes as they’re annoying when typing code 122 | defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false 123 | 124 | # Disable smart dashes as they’re annoying when typing code 125 | defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false 126 | 127 | # Set a custom wallpaper image. `DefaultDesktop.jpg` is already a symlink, and 128 | # all wallpapers are in `/Library/Desktop Pictures/`. The default is `Wave.jpg`. 129 | #rm -rf ~/Library/Application Support/Dock/desktoppicture.db 130 | #sudo rm -rf /System/Library/CoreServices/DefaultDesktop.jpg 131 | #sudo ln -s /path/to/your/image /System/Library/CoreServices/DefaultDesktop.jpg 132 | 133 | ############################################################################### 134 | # SSD-specific tweaks # 135 | ############################################################################### 136 | 137 | # Disable hibernation (speeds up entering sleep mode) 138 | sudo pmset -a hibernatemode 0 139 | 140 | # Remove the sleep image file to save disk space 141 | sudo rm /private/var/vm/sleepimage 142 | # Create a zero-byte file instead… 143 | sudo touch /private/var/vm/sleepimage 144 | # …and make sure it can’t be rewritten 145 | sudo chflags uchg /private/var/vm/sleepimage 146 | 147 | # Disable the sudden motion sensor as it’s not useful for SSDs 148 | sudo pmset -a sms 0 149 | 150 | ############################################################################### 151 | # Trackpad, mouse, keyboard, Bluetooth accessories, and input # 152 | ############################################################################### 153 | 154 | # Trackpad: enable tap to click for this user and for the login screen 155 | defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true 156 | defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 1 157 | defaults write NSGlobalDomain com.apple.mouse.tapBehavior -int 1 158 | 159 | # Trackpad: map bottom right corner to right-click 160 | defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick -int 2 161 | defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick -bool true 162 | defaults -currentHost write NSGlobalDomain com.apple.trackpad.trackpadCornerClickBehavior -int 1 163 | defaults -currentHost write NSGlobalDomain com.apple.trackpad.enableSecondaryClick -bool true 164 | 165 | # Disable “natural” (Lion-style) scrolling 166 | # defaults write NSGlobalDomain com.apple.swipescrolldirection -bool false 167 | 168 | # Increase sound quality for Bluetooth headphones/headsets 169 | defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" -int 40 170 | 171 | # Enable full keyboard access for all controls 172 | # (e.g. enable Tab in modal dialogs) 173 | defaults write NSGlobalDomain AppleKeyboardUIMode -int 3 174 | 175 | # Use scroll gesture with the Ctrl (^) modifier key to zoom 176 | defaults write com.apple.universalaccess closeViewScrollWheelToggle -bool true 177 | defaults write com.apple.universalaccess HIDScrollZoomModifierMask -int 262144 178 | # Follow the keyboard focus while zoomed in 179 | defaults write com.apple.universalaccess closeViewZoomFollowsFocus -bool true 180 | 181 | # Disable press-and-hold for keys in favor of key repeat 182 | defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false 183 | 184 | # Set a blazingly fast keyboard repeat rate 185 | defaults write NSGlobalDomain KeyRepeat -float 0.000000000001 186 | 187 | # Set language and text formats 188 | # Note: if you’re in the US, replace `EUR` with `USD`, `Centimeters` with 189 | # `Inches`, `en_GB` with `en_US`, and `true` with `false`. 190 | defaults write NSGlobalDomain AppleLanguages -array "en" "nl" 191 | defaults write NSGlobalDomain AppleLocale -string "en_GB@currency=EUR" 192 | defaults write NSGlobalDomain AppleMeasurementUnits -string "Centimeters" 193 | defaults write NSGlobalDomain AppleMetricUnits -bool true 194 | 195 | # Set the timezone; see `sudo systemsetup -listtimezones` for other values 196 | sudo systemsetup -settimezone "Europe/Sydney" > /dev/null 197 | 198 | # Disable auto-correct 199 | defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false 200 | 201 | # Stop iTunes from responding to the keyboard media keys 202 | #launchctl unload -w /System/Library/LaunchAgents/com.apple.rcd.plist 2> /dev/null 203 | 204 | ############################################################################### 205 | # Screen # 206 | ############################################################################### 207 | 208 | # Require password immediately after sleep or screen saver begins 209 | defaults write com.apple.screensaver askForPassword -int 1 210 | defaults write com.apple.screensaver askForPasswordDelay -int 0 211 | 212 | # Save screenshots to the desktop 213 | defaults write com.apple.screencapture location -string "${HOME}/Desktop" 214 | 215 | # Save screenshots in PNG format (other options: BMP, GIF, JPG, PDF, TIFF) 216 | defaults write com.apple.screencapture type -string "png" 217 | 218 | # Disable shadow in screenshots 219 | defaults write com.apple.screencapture disable-shadow -bool true 220 | 221 | # Enable subpixel font rendering on non-Apple LCDs 222 | defaults write NSGlobalDomain AppleFontSmoothing -int 2 223 | 224 | # Enable HiDPI display modes (requires restart) 225 | sudo defaults write /Library/Preferences/com.apple.windowserver DisplayResolutionEnabled -bool true 226 | 227 | ############################################################################### 228 | # Finder # 229 | ############################################################################### 230 | 231 | # Finder: allow quitting via ⌘ + Q; doing so will also hide desktop icons 232 | defaults write com.apple.finder QuitMenuItem -bool true 233 | 234 | # Finder: disable window animations and Get Info animations 235 | defaults write com.apple.finder DisableAllAnimations -bool true 236 | 237 | # Set Desktop as the default location for new Finder windows 238 | # For other paths, use `PfLo` and `file:///full/path/here/` 239 | defaults write com.apple.finder NewWindowTarget -string "PfDe" 240 | defaults write com.apple.finder NewWindowTargetPath -string "file://${HOME}/Desktop/" 241 | 242 | # Show icons for hard drives, servers, and removable media on the desktop 243 | defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true 244 | defaults write com.apple.finder ShowHardDrivesOnDesktop -bool true 245 | defaults write com.apple.finder ShowMountedServersOnDesktop -bool true 246 | defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool true 247 | 248 | # Finder: show hidden files by default 249 | #defaults write com.apple.finder AppleShowAllFiles -bool true 250 | 251 | # Finder: show all filename extensions 252 | defaults write NSGlobalDomain AppleShowAllExtensions -bool true 253 | 254 | # Finder: show status bar 255 | defaults write com.apple.finder ShowStatusBar -bool true 256 | 257 | # Finder: show path bar 258 | defaults write com.apple.finder ShowPathbar -bool true 259 | 260 | # Display full POSIX path as Finder window title 261 | defaults write com.apple.finder _FXShowPosixPathInTitle -bool true 262 | 263 | # Keep folders on top when sorting by name 264 | defaults write com.apple.finder _FXSortFoldersFirst -bool true 265 | 266 | # When performing a search, search the current folder by default 267 | defaults write com.apple.finder FXDefaultSearchScope -string "SCcf" 268 | 269 | # Disable the warning when changing a file extension 270 | defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false 271 | 272 | # Enable spring loading for directories 273 | defaults write NSGlobalDomain com.apple.springing.enabled -bool true 274 | 275 | # Remove the spring loading delay for directories 276 | defaults write NSGlobalDomain com.apple.springing.delay -float 0 277 | 278 | # Avoid creating .DS_Store files on network or USB volumes 279 | defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true 280 | defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true 281 | 282 | # Disable disk image verification 283 | defaults write com.apple.frameworks.diskimages skip-verify -bool true 284 | defaults write com.apple.frameworks.diskimages skip-verify-locked -bool true 285 | defaults write com.apple.frameworks.diskimages skip-verify-remote -bool true 286 | 287 | # Automatically open a new Finder window when a volume is mounted 288 | defaults write com.apple.frameworks.diskimages auto-open-ro-root -bool true 289 | defaults write com.apple.frameworks.diskimages auto-open-rw-root -bool true 290 | defaults write com.apple.finder OpenWindowForNewRemovableDisk -bool true 291 | 292 | # Show item info near icons on the desktop and in other icon views 293 | /usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:showItemInfo true" ~/Library/Preferences/com.apple.finder.plist 294 | /usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:showItemInfo true" ~/Library/Preferences/com.apple.finder.plist 295 | /usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:showItemInfo true" ~/Library/Preferences/com.apple.finder.plist 296 | 297 | # Show item info to the right of the icons on the desktop 298 | /usr/libexec/PlistBuddy -c "Set DesktopViewSettings:IconViewSettings:labelOnBottom false" ~/Library/Preferences/com.apple.finder.plist 299 | 300 | # Enable snap-to-grid for icons on the desktop and in other icon views 301 | /usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist 302 | /usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist 303 | /usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist 304 | 305 | # Increase grid spacing for icons on the desktop and in other icon views 306 | /usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:gridSpacing 100" ~/Library/Preferences/com.apple.finder.plist 307 | /usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:gridSpacing 100" ~/Library/Preferences/com.apple.finder.plist 308 | /usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:gridSpacing 100" ~/Library/Preferences/com.apple.finder.plist 309 | 310 | # Increase the size of icons on the desktop and in other icon views 311 | /usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:iconSize 80" ~/Library/Preferences/com.apple.finder.plist 312 | /usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:iconSize 80" ~/Library/Preferences/com.apple.finder.plist 313 | /usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:iconSize 80" ~/Library/Preferences/com.apple.finder.plist 314 | 315 | # Use list view in all Finder windows by default 316 | # Four-letter codes for the other view modes: `icnv`, `clmv`, `Flwv` 317 | defaults write com.apple.finder FXPreferredViewStyle -string "Nlsv" 318 | 319 | # Disable the warning before emptying the Trash 320 | defaults write com.apple.finder WarnOnEmptyTrash -bool false 321 | 322 | # Enable AirDrop over Ethernet and on unsupported Macs running Lion 323 | defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool true 324 | 325 | # Enable the MacBook Air SuperDrive on any Mac 326 | sudo nvram boot-args="mbasd=1" 327 | 328 | # Show the ~/Library folder 329 | chflags nohidden ~/Library 330 | 331 | # Show the /Volumes folder 332 | sudo chflags nohidden /Volumes 333 | 334 | # Remove Dropbox’s green checkmark icons in Finder 335 | file=/Applications/Dropbox.app/Contents/Resources/emblem-dropbox-uptodate.icns 336 | [ -e "${file}" ] && mv -f "${file}" "${file}.bak" 337 | 338 | # Expand the following File Info panes: 339 | # “General”, “Open with”, and “Sharing & Permissions” 340 | defaults write com.apple.finder FXInfoPanesExpanded -dict \ 341 | General -bool true \ 342 | OpenWith -bool true \ 343 | Privileges -bool true 344 | 345 | ############################################################################### 346 | # Dock, Dashboard, and hot corners # 347 | ############################################################################### 348 | 349 | # Enable highlight hover effect for the grid view of a stack (Dock) 350 | defaults write com.apple.dock mouse-over-hilite-stack -bool true 351 | 352 | # Set the icon size of Dock items to 36 pixels 353 | defaults write com.apple.dock tilesize -int 36 354 | 355 | # Change minimize/maximize window effect 356 | defaults write com.apple.dock mineffect -string "scale" 357 | 358 | # Minimize windows into their application’s icon 359 | defaults write com.apple.dock minimize-to-application -bool true 360 | 361 | # Enable spring loading for all Dock items 362 | defaults write com.apple.dock enable-spring-load-actions-on-all-items -bool true 363 | 364 | # Show indicator lights for open applications in the Dock 365 | defaults write com.apple.dock show-process-indicators -bool true 366 | 367 | # Wipe all (default) app icons from the Dock 368 | # This is only really useful when setting up a new Mac, or if you don’t use 369 | # the Dock to launch apps. 370 | #defaults write com.apple.dock persistent-apps -array 371 | 372 | # Show only open applications in the Dock 373 | #defaults write com.apple.dock static-only -bool true 374 | 375 | # Don’t animate opening applications from the Dock 376 | defaults write com.apple.dock launchanim -bool false 377 | 378 | # Speed up Mission Control animations 379 | defaults write com.apple.dock expose-animation-duration -float 0.1 380 | 381 | # Don’t group windows by application in Mission Control 382 | # (i.e. use the old Exposé behavior instead) 383 | defaults write com.apple.dock expose-group-by-app -bool false 384 | 385 | # Disable Dashboard 386 | defaults write com.apple.dashboard mcx-disabled -bool true 387 | 388 | # Don’t show Dashboard as a Space 389 | defaults write com.apple.dock dashboard-in-overlay -bool true 390 | 391 | # Don’t automatically rearrange Spaces based on most recent use 392 | defaults write com.apple.dock mru-spaces -bool false 393 | 394 | # Remove the auto-hiding Dock delay 395 | defaults write com.apple.dock autohide-delay -float 0 396 | # Remove the animation when hiding/showing the Dock 397 | defaults write com.apple.dock autohide-time-modifier -float 0 398 | 399 | # Automatically hide and show the Dock 400 | defaults write com.apple.dock autohide -bool true 401 | 402 | # Make Dock icons of hidden applications translucent 403 | defaults write com.apple.dock showhidden -bool true 404 | 405 | # Disable the Launchpad gesture (pinch with thumb and three fingers) 406 | #defaults write com.apple.dock showLaunchpadGestureEnabled -int 0 407 | 408 | # Reset Launchpad, but keep the desktop wallpaper intact 409 | find "${HOME}/Library/Application Support/Dock" -name "*-*.db" -maxdepth 1 -delete 410 | 411 | # Add iOS & Watch Simulator to Launchpad 412 | sudo ln -sf "/Applications/Xcode.app/Contents/Developer/Applications/Simulator.app" "/Applications/Simulator.app" 413 | sudo ln -sf "/Applications/Xcode.app/Contents/Developer/Applications/Simulator (Watch).app" "/Applications/Simulator (Watch).app" 414 | 415 | # Add a spacer to the left side of the Dock (where the applications are) 416 | #defaults write com.apple.dock persistent-apps -array-add '{tile-data={}; tile-type="spacer-tile";}' 417 | # Add a spacer to the right side of the Dock (where the Trash is) 418 | #defaults write com.apple.dock persistent-others -array-add '{tile-data={}; tile-type="spacer-tile";}' 419 | 420 | # Hot corners 421 | # Possible values: 422 | # 0: no-op 423 | # 2: Mission Control 424 | # 3: Show application windows 425 | # 4: Desktop 426 | # 5: Start screen saver 427 | # 6: Disable screen saver 428 | # 7: Dashboard 429 | # 10: Put display to sleep 430 | # 11: Launchpad 431 | # 12: Notification Center 432 | # Top left screen corner → Mission Control 433 | defaults write com.apple.dock wvous-tl-corner -int 2 434 | defaults write com.apple.dock wvous-tl-modifier -int 0 435 | # Top right screen corner → Desktop 436 | defaults write com.apple.dock wvous-tr-corner -int 4 437 | defaults write com.apple.dock wvous-tr-modifier -int 0 438 | # Bottom left screen corner → Start screen saver 439 | defaults write com.apple.dock wvous-bl-corner -int 5 440 | defaults write com.apple.dock wvous-bl-modifier -int 0 441 | 442 | ############################################################################### 443 | # Safari & WebKit # 444 | ############################################################################### 445 | 446 | # Privacy: don’t send search queries to Apple 447 | defaults write com.apple.Safari UniversalSearchEnabled -bool false 448 | defaults write com.apple.Safari SuppressSearchSuggestions -bool true 449 | 450 | # Press Tab to highlight each item on a web page 451 | defaults write com.apple.Safari WebKitTabToLinksPreferenceKey -bool true 452 | defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2TabsToLinks -bool true 453 | 454 | # Show the full URL in the address bar (note: this still hides the scheme) 455 | defaults write com.apple.Safari ShowFullURLInSmartSearchField -bool true 456 | 457 | # Set Safari’s home page to `about:blank` for faster loading 458 | defaults write com.apple.Safari HomePage -string "about:blank" 459 | 460 | # Prevent Safari from opening ‘safe’ files automatically after downloading 461 | defaults write com.apple.Safari AutoOpenSafeDownloads -bool false 462 | 463 | # Allow hitting the Backspace key to go to the previous page in history 464 | defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2BackspaceKeyNavigationEnabled -bool true 465 | 466 | # Hide Safari’s bookmarks bar by default 467 | defaults write com.apple.Safari ShowFavoritesBar -bool false 468 | 469 | # Hide Safari’s sidebar in Top Sites 470 | defaults write com.apple.Safari ShowSidebarInTopSites -bool false 471 | 472 | # Disable Safari’s thumbnail cache for History and Top Sites 473 | defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2 474 | 475 | # Enable Safari’s debug menu 476 | defaults write com.apple.Safari IncludeInternalDebugMenu -bool true 477 | 478 | # Make Safari’s search banners default to Contains instead of Starts With 479 | defaults write com.apple.Safari FindOnPageMatchesWordStartsOnly -bool false 480 | 481 | # Remove useless icons from Safari’s bookmarks bar 482 | defaults write com.apple.Safari ProxiesInBookmarksBar "()" 483 | 484 | # Enable the Develop menu and the Web Inspector in Safari 485 | defaults write com.apple.Safari IncludeDevelopMenu -bool true 486 | defaults write com.apple.Safari WebKitDeveloperExtrasEnabledPreferenceKey -bool true 487 | defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DeveloperExtrasEnabled -bool true 488 | 489 | # Add a context menu item for showing the Web Inspector in web views 490 | defaults write NSGlobalDomain WebKitDeveloperExtras -bool true 491 | 492 | # Enable continuous spellchecking 493 | defaults write com.apple.Safari WebContinuousSpellCheckingEnabled -bool true 494 | # Disable auto-correct 495 | defaults write com.apple.Safari WebAutomaticSpellingCorrectionEnabled -bool false 496 | 497 | # Disable AutoFill 498 | defaults write com.apple.Safari AutoFillFromAddressBook -bool false 499 | defaults write com.apple.Safari AutoFillPasswords -bool false 500 | defaults write com.apple.Safari AutoFillCreditCardData -bool false 501 | defaults write com.apple.Safari AutoFillMiscellaneousForms -bool false 502 | 503 | # Warn about fraudulent websites 504 | defaults write com.apple.Safari WarnAboutFraudulentWebsites -bool true 505 | 506 | # Disable plug-ins 507 | defaults write com.apple.Safari WebKitPluginsEnabled -bool false 508 | defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2PluginsEnabled -bool false 509 | 510 | # Disable Java 511 | defaults write com.apple.Safari WebKitJavaEnabled -bool false 512 | defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaEnabled -bool false 513 | 514 | # Block pop-up windows 515 | defaults write com.apple.Safari WebKitJavaScriptCanOpenWindowsAutomatically -bool false 516 | defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaScriptCanOpenWindowsAutomatically -bool false 517 | 518 | # Enable “Do Not Track” 519 | defaults write com.apple.Safari SendDoNotTrackHTTPHeader -bool true 520 | 521 | # Update extensions automatically 522 | defaults write com.apple.Safari InstallExtensionUpdatesAutomatically -bool true 523 | 524 | ############################################################################### 525 | # Mail # 526 | ############################################################################### 527 | 528 | # Disable send and reply animations in Mail.app 529 | defaults write com.apple.mail DisableReplyAnimations -bool true 530 | defaults write com.apple.mail DisableSendAnimations -bool true 531 | 532 | # Copy email addresses as `foo@example.com` instead of `Foo Bar ` in Mail.app 533 | defaults write com.apple.mail AddressesIncludeNameOnPasteboard -bool false 534 | 535 | # Add the keyboard shortcut ⌘ + Enter to send an email in Mail.app 536 | defaults write com.apple.mail NSUserKeyEquivalents -dict-add "Send" "@\U21a9" 537 | 538 | # Display emails in threaded mode, sorted by date (oldest at the top) 539 | defaults write com.apple.mail DraftsViewerAttributes -dict-add "DisplayInThreadedMode" -string "yes" 540 | defaults write com.apple.mail DraftsViewerAttributes -dict-add "SortedDescending" -string "yes" 541 | defaults write com.apple.mail DraftsViewerAttributes -dict-add "SortOrder" -string "received-date" 542 | 543 | # Disable inline attachments (just show the icons) 544 | defaults write com.apple.mail DisableInlineAttachmentViewing -bool true 545 | 546 | # Disable automatic spell checking 547 | defaults write com.apple.mail SpellCheckingBehavior -string "NoSpellCheckingEnabled" 548 | 549 | ############################################################################### 550 | # Spotlight # 551 | ############################################################################### 552 | 553 | # Hide Spotlight tray-icon (and subsequent helper) 554 | #sudo chmod 600 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search 555 | # Disable Spotlight indexing for any volume that gets mounted and has not yet 556 | # been indexed before. 557 | # Use `sudo mdutil -i off "/Volumes/foo"` to stop indexing any volume. 558 | sudo defaults write /.Spotlight-V100/VolumeConfiguration Exclusions -array "/Volumes" 559 | # Change indexing order and disable some search results 560 | # Yosemite-specific search results (remove them if you are using macOS 10.9 or older): 561 | # MENU_DEFINITION 562 | # MENU_CONVERSION 563 | # MENU_EXPRESSION 564 | # MENU_SPOTLIGHT_SUGGESTIONS (send search queries to Apple) 565 | # MENU_WEBSEARCH (send search queries to Apple) 566 | # MENU_OTHER 567 | defaults write com.apple.spotlight orderedItems -array \ 568 | '{"enabled" = 1;"name" = "APPLICATIONS";}' \ 569 | '{"enabled" = 1;"name" = "SYSTEM_PREFS";}' \ 570 | '{"enabled" = 1;"name" = "DIRECTORIES";}' \ 571 | '{"enabled" = 1;"name" = "PDF";}' \ 572 | '{"enabled" = 1;"name" = "FONTS";}' \ 573 | '{"enabled" = 0;"name" = "DOCUMENTS";}' \ 574 | '{"enabled" = 0;"name" = "MESSAGES";}' \ 575 | '{"enabled" = 0;"name" = "CONTACT";}' \ 576 | '{"enabled" = 0;"name" = "EVENT_TODO";}' \ 577 | '{"enabled" = 0;"name" = "IMAGES";}' \ 578 | '{"enabled" = 0;"name" = "BOOKMARKS";}' \ 579 | '{"enabled" = 0;"name" = "MUSIC";}' \ 580 | '{"enabled" = 0;"name" = "MOVIES";}' \ 581 | '{"enabled" = 0;"name" = "PRESENTATIONS";}' \ 582 | '{"enabled" = 0;"name" = "SPREADSHEETS";}' \ 583 | '{"enabled" = 0;"name" = "SOURCE";}' \ 584 | '{"enabled" = 0;"name" = "MENU_DEFINITION";}' \ 585 | '{"enabled" = 0;"name" = "MENU_OTHER";}' \ 586 | '{"enabled" = 0;"name" = "MENU_CONVERSION";}' \ 587 | '{"enabled" = 0;"name" = "MENU_EXPRESSION";}' \ 588 | '{"enabled" = 0;"name" = "MENU_WEBSEARCH";}' \ 589 | '{"enabled" = 0;"name" = "MENU_SPOTLIGHT_SUGGESTIONS";}' 590 | # Load new settings before rebuilding the index 591 | killall mds > /dev/null 2>&1 592 | # Make sure indexing is enabled for the main volume 593 | sudo mdutil -i on / > /dev/null 594 | # Rebuild the index from scratch 595 | sudo mdutil -E / > /dev/null 596 | 597 | ############################################################################### 598 | # Terminal & iTerm 2 # 599 | ############################################################################### 600 | 601 | # Only use UTF-8 in Terminal.app 602 | defaults write com.apple.terminal StringEncodings -array 4 603 | 604 | # Use a modified version of the Solarized Dark theme by default in Terminal.app 605 | osascript < /dev/null && sudo tmutil disablelocal 678 | 679 | ############################################################################### 680 | # Activity Monitor # 681 | ############################################################################### 682 | 683 | # Show the main window when launching Activity Monitor 684 | defaults write com.apple.ActivityMonitor OpenMainWindow -bool true 685 | 686 | # Visualize CPU usage in the Activity Monitor Dock icon 687 | defaults write com.apple.ActivityMonitor IconType -int 5 688 | 689 | # Show all processes in Activity Monitor 690 | defaults write com.apple.ActivityMonitor ShowCategory -int 0 691 | 692 | # Sort Activity Monitor results by CPU usage 693 | defaults write com.apple.ActivityMonitor SortColumn -string "CPUUsage" 694 | defaults write com.apple.ActivityMonitor SortDirection -int 0 695 | 696 | ############################################################################### 697 | # Address Book, Dashboard, iCal, TextEdit, and Disk Utility # 698 | ############################################################################### 699 | 700 | # Enable the debug menu in Address Book 701 | defaults write com.apple.addressbook ABShowDebugMenu -bool true 702 | 703 | # Enable Dashboard dev mode (allows keeping widgets on the desktop) 704 | defaults write com.apple.dashboard devmode -bool true 705 | 706 | # Enable the debug menu in iCal (pre-10.8) 707 | defaults write com.apple.iCal IncludeDebugMenu -bool true 708 | 709 | # Use plain text mode for new TextEdit documents 710 | defaults write com.apple.TextEdit RichText -int 0 711 | # Open and save files as UTF-8 in TextEdit 712 | defaults write com.apple.TextEdit PlainTextEncoding -int 4 713 | defaults write com.apple.TextEdit PlainTextEncodingForWrite -int 4 714 | 715 | # Enable the debug menu in Disk Utility 716 | defaults write com.apple.DiskUtility DUDebugMenuEnabled -bool true 717 | defaults write com.apple.DiskUtility advanced-image-options -bool true 718 | 719 | # Auto-play videos when opened with QuickTime Player 720 | defaults write com.apple.QuickTimePlayerX MGPlayMovieOnOpen -bool true 721 | 722 | ############################################################################### 723 | # Mac App Store # 724 | ############################################################################### 725 | 726 | # Enable the WebKit Developer Tools in the Mac App Store 727 | defaults write com.apple.appstore WebKitDeveloperExtras -bool true 728 | 729 | # Enable Debug Menu in the Mac App Store 730 | defaults write com.apple.appstore ShowDebugMenu -bool true 731 | 732 | # Enable the automatic update check 733 | defaults write com.apple.SoftwareUpdate AutomaticCheckEnabled -bool true 734 | 735 | # Check for software updates daily, not just once per week 736 | defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1 737 | 738 | # Download newly available updates in background 739 | defaults write com.apple.SoftwareUpdate AutomaticDownload -int 1 740 | 741 | # Install System data files & security updates 742 | defaults write com.apple.SoftwareUpdate CriticalUpdateInstall -int 1 743 | 744 | # Automatically download apps purchased on other Macs 745 | defaults write com.apple.SoftwareUpdate ConfigDataInstall -int 1 746 | 747 | # Turn on app auto-update 748 | defaults write com.apple.commerce AutoUpdate -bool true 749 | 750 | # Allow the App Store to reboot machine on macOS updates 751 | defaults write com.apple.commerce AutoUpdateRestartRequired -bool true 752 | 753 | ############################################################################### 754 | # Photos # 755 | ############################################################################### 756 | 757 | # Prevent Photos from opening automatically when devices are plugged in 758 | defaults -currentHost write com.apple.ImageCapture disableHotPlug -bool true 759 | 760 | ############################################################################### 761 | # Messages # 762 | ############################################################################### 763 | 764 | # Disable automatic emoji substitution (i.e. use plain text smileys) 765 | defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "automaticEmojiSubstitutionEnablediMessage" -bool false 766 | 767 | # Disable smart quotes as it’s annoying for messages that contain code 768 | defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "automaticQuoteSubstitutionEnabled" -bool false 769 | 770 | # Disable continuous spell checking 771 | defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "continuousSpellCheckingEnabled" -bool false 772 | 773 | ############################################################################### 774 | # Google Chrome & Google Chrome Canary # 775 | ############################################################################### 776 | 777 | # Disable the all too sensitive backswipe on trackpads 778 | defaults write com.google.Chrome AppleEnableSwipeNavigateWithScrolls -bool false 779 | defaults write com.google.Chrome.canary AppleEnableSwipeNavigateWithScrolls -bool false 780 | 781 | # Disable the all too sensitive backswipe on Magic Mouse 782 | defaults write com.google.Chrome AppleEnableMouseSwipeNavigateWithScrolls -bool false 783 | defaults write com.google.Chrome.canary AppleEnableMouseSwipeNavigateWithScrolls -bool false 784 | 785 | # Use the system-native print preview dialog 786 | defaults write com.google.Chrome DisablePrintPreview -bool true 787 | defaults write com.google.Chrome.canary DisablePrintPreview -bool true 788 | 789 | # Expand the print dialog by default 790 | defaults write com.google.Chrome PMPrintingExpandedStateForPrint2 -bool true 791 | defaults write com.google.Chrome.canary PMPrintingExpandedStateForPrint2 -bool true 792 | 793 | ############################################################################### 794 | # GPGMail 2 # 795 | ############################################################################### 796 | 797 | # Disable signing emails by default 798 | defaults write ~/Library/Preferences/org.gpgtools.gpgmail SignNewEmailsByDefault -bool false 799 | 800 | ############################################################################### 801 | # Opera & Opera Developer # 802 | ############################################################################### 803 | 804 | # Expand the print dialog by default 805 | defaults write com.operasoftware.Opera PMPrintingExpandedStateForPrint2 -boolean true 806 | defaults write com.operasoftware.OperaDeveloper PMPrintingExpandedStateForPrint2 -boolean true 807 | 808 | ############################################################################### 809 | # SizeUp.app # 810 | ############################################################################### 811 | 812 | # Start SizeUp at login 813 | defaults write com.irradiatedsoftware.SizeUp StartAtLogin -bool true 814 | 815 | # Don’t show the preferences window on next start 816 | defaults write com.irradiatedsoftware.SizeUp ShowPrefsOnNextStart -bool false 817 | 818 | ############################################################################### 819 | # Sublime Text # 820 | ############################################################################### 821 | 822 | # Install Sublime Text settings 823 | cp -r init/Preferences.sublime-settings ~/Library/Application\ Support/Sublime\ Text*/Packages/User/Preferences.sublime-settings 2> /dev/null 824 | 825 | ############################################################################### 826 | # Transmission.app # 827 | ############################################################################### 828 | 829 | # Use `~/Documents/Torrents` to store incomplete downloads 830 | defaults write org.m0k.transmission UseIncompleteDownloadFolder -bool true 831 | defaults write org.m0k.transmission IncompleteDownloadFolder -string "${HOME}/Documents/Torrents" 832 | 833 | # Don’t prompt for confirmation before downloading 834 | defaults write org.m0k.transmission DownloadAsk -bool false 835 | defaults write org.m0k.transmission MagnetOpenAsk -bool false 836 | 837 | # Trash original torrent files 838 | defaults write org.m0k.transmission DeleteOriginalTorrent -bool true 839 | 840 | # Hide the donate message 841 | defaults write org.m0k.transmission WarningDonate -bool false 842 | # Hide the legal disclaimer 843 | defaults write org.m0k.transmission WarningLegal -bool false 844 | 845 | # IP block list. 846 | # Source: https://giuliomac.wordpress.com/2014/02/19/best-blocklist-for-transmission/ 847 | defaults write org.m0k.transmission BlocklistNew -bool true 848 | defaults write org.m0k.transmission BlocklistURL -string "http://john.bitsurge.net/public/biglist.p2p.gz" 849 | defaults write org.m0k.transmission BlocklistAutoUpdate -bool true 850 | 851 | ############################################################################### 852 | # Twitter.app # 853 | ############################################################################### 854 | 855 | # Disable smart quotes as it’s annoying for code tweets 856 | defaults write com.twitter.twitter-mac AutomaticQuoteSubstitutionEnabled -bool false 857 | 858 | # Show the app window when clicking the menu bar icon 859 | defaults write com.twitter.twitter-mac MenuItemBehavior -int 1 860 | 861 | # Enable the hidden ‘Develop’ menu 862 | defaults write com.twitter.twitter-mac ShowDevelopMenu -bool true 863 | 864 | # Open links in the background 865 | defaults write com.twitter.twitter-mac openLinksInBackground -bool true 866 | 867 | # Allow closing the ‘new tweet’ window by pressing `Esc` 868 | defaults write com.twitter.twitter-mac ESCClosesComposeWindow -bool true 869 | 870 | # Show full names rather than Twitter handles 871 | defaults write com.twitter.twitter-mac ShowFullNames -bool true 872 | 873 | # Hide the app in the background if it’s not the front-most window 874 | defaults write com.twitter.twitter-mac HideInBackground -bool true 875 | 876 | ############################################################################### 877 | # Tweetbot.app # 878 | ############################################################################### 879 | 880 | # Bypass the annoyingly slow t.co URL shortener 881 | defaults write com.tapbots.TweetbotMac OpenURLsDirectly -bool true 882 | 883 | ############################################################################### 884 | # Spectacle.app # 885 | ############################################################################### 886 | 887 | # Set up my preferred keyboard shortcuts 888 | defaults write com.divisiblebyzero.Spectacle MakeLarger -data 62706c6973743030d40102030405061819582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708101155246e756c6cd4090a0b0c0d0e0d0f596d6f64696669657273546e616d65576b6579436f64655624636c6173731000800280035a4d616b654c6172676572d2121314155a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21617585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11a1b54726f6f74800108111a232d32373c424b555a62696b6d6f7a7f8a939c9fa8b1c3c6cb0000000000000101000000000000001c000000000000000000000000000000cd 889 | defaults write com.divisiblebyzero.Spectacle MakeSmaller -data 62706c6973743030d40102030405061819582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708101155246e756c6cd4090a0b0c0d0e0d0f596d6f64696669657273546e616d65576b6579436f64655624636c6173731000800280035b4d616b65536d616c6c6572d2121314155a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21617585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11a1b54726f6f74800108111a232d32373c424b555a62696b6d6f7b808b949da0a9b2c4c7cc0000000000000101000000000000001c000000000000000000000000000000ce 890 | defaults write com.divisiblebyzero.Spectacle MoveToBottomDisplay -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731119008002107d80035f10134d6f7665546f426f74746f6d446973706c6179d2131415165a24636c6173736e616d655824636c61737365735d5a65726f4b6974486f744b6579a217185d5a65726f4b6974486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e7072888d98a1afb2c0c9dbdee30000000000000101000000000000001d000000000000000000000000000000e5 891 | defaults write com.divisiblebyzero.Spectacle MoveToBottomHalf -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731119008002107d80035f10104d6f7665546f426f74746f6d48616c66d2131415165a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21718585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e7072858a959ea7aab3bcced1d60000000000000101000000000000001d000000000000000000000000000000d8 892 | defaults write com.divisiblebyzero.Spectacle MoveToCenter -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731119008002100880035c4d6f7665546f43656e746572d2131415165a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21718585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e70727f848f98a1a4adb6c8cbd00000000000000101000000000000001d000000000000000000000000000000d2 893 | defaults write com.divisiblebyzero.Spectacle MoveToFullscreen -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731119008002102e80035f10104d6f7665546f46756c6c73637265656ed2131415165a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21718585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e7072858a959ea7aab3bcced1d60000000000000101000000000000001d000000000000000000000000000000d8 894 | defaults write com.divisiblebyzero.Spectacle MoveToLeftDisplay -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731119008002107b80035f10114d6f7665546f4c656674446973706c6179d2131415165a24636c6173736e616d655824636c61737365735d5a65726f4b6974486f744b6579a217185d5a65726f4b6974486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e7072868b969fadb0bec7d9dce10000000000000101000000000000001d000000000000000000000000000000e3 895 | defaults write com.divisiblebyzero.Spectacle MoveToLeftHalf -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731119008002107b80035e4d6f7665546f4c65667448616c66d2131415165a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21718585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e70728186919aa3a6afb8cacdd20000000000000101000000000000001d000000000000000000000000000000d4 896 | defaults write com.divisiblebyzero.Spectacle MoveToLowerLeft -data 62706c6973743030d40102030405061a1b582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731113008002107b80035f100f4d6f7665546f4c6f7765724c656674d2131415165a24636c6173736e616d655824636c61737365735d5a65726f4b6974486f744b6579a31718195d5a65726f4b6974486f744b6579585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11c1d54726f6f74800108111a232d32373c424b555a62696c6e70728489949dabafbdc6cfe1e4e90000000000000101000000000000001e000000000000000000000000000000eb 897 | defaults write com.divisiblebyzero.Spectacle MoveToLowerRight -data 62706c6973743030d40102030405061a1b582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731113008002107c80035f10104d6f7665546f4c6f7765725269676874d2131415165a24636c6173736e616d655824636c61737365735d5a65726f4b6974486f744b6579a31718195d5a65726f4b6974486f744b6579585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11c1d54726f6f74800108111a232d32373c424b555a62696c6e7072858a959eacb0bec7d0e2e5ea0000000000000101000000000000001e000000000000000000000000000000ec 898 | defaults write com.divisiblebyzero.Spectacle MoveToNextDisplay -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731118008002107c80035f10114d6f7665546f4e657874446973706c6179d2131415165a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21718585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e7072868b969fa8abb4bdcfd2d70000000000000101000000000000001d000000000000000000000000000000d9 899 | defaults write com.divisiblebyzero.Spectacle MoveToNextThird -data 62706c6973743030d40102030405061819582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708101155246e756c6cd4090a0b0c0d0e0d0f596d6f64696669657273546e616d65576b6579436f64655624636c6173731000800280035f100f4d6f7665546f4e6578745468697264d2121314155a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21617585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11a1b54726f6f74800108111a232d32373c424b555a62696b6d6f8186919aa3a6afb8cacdd20000000000000101000000000000001c000000000000000000000000000000d4 900 | defaults write com.divisiblebyzero.Spectacle MoveToPreviousDisplay -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731118008002107b80035f10154d6f7665546f50726576696f7573446973706c6179d2131415165a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21718585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e70728a8f9aa3acafb8c1d3d6db0000000000000101000000000000001d000000000000000000000000000000dd 901 | defaults write com.divisiblebyzero.Spectacle MoveToPreviousThird -data 62706c6973743030d40102030405061819582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708101155246e756c6cd4090a0b0c0d0e0d0f596d6f64696669657273546e616d65576b6579436f64655624636c6173731000800280035f10134d6f7665546f50726576696f75735468697264d2121314155a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21617585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11a1b54726f6f74800108111a232d32373c424b555a62696b6d6f858a959ea7aab3bcced1d60000000000000101000000000000001c000000000000000000000000000000d8 902 | defaults write com.divisiblebyzero.Spectacle MoveToRightDisplay -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731119008002107c80035f10124d6f7665546f5269676874446973706c6179d2131415165a24636c6173736e616d655824636c61737365735d5a65726f4b6974486f744b6579a217185d5a65726f4b6974486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e7072878c97a0aeb1bfc8dadde20000000000000101000000000000001d000000000000000000000000000000e4 903 | defaults write com.divisiblebyzero.Spectacle MoveToRightHalf -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731119008002107c80035f100f4d6f7665546f526967687448616c66d2131415165a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21718585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e70728489949da6a9b2bbcdd0d50000000000000101000000000000001d000000000000000000000000000000d7 904 | defaults write com.divisiblebyzero.Spectacle MoveToTopDisplay -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731119008002107e80035f10104d6f7665546f546f70446973706c6179d2131415165a24636c6173736e616d655824636c61737365735d5a65726f4b6974486f744b6579a217185d5a65726f4b6974486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e7072858a959eacafbdc6d8dbe00000000000000101000000000000001d000000000000000000000000000000e2 905 | defaults write com.divisiblebyzero.Spectacle MoveToTopHalf -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731119008002107e80035d4d6f7665546f546f7048616c66d2131415165a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21718585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e707280859099a2a5aeb7c9ccd10000000000000101000000000000001d000000000000000000000000000000d3 906 | defaults write com.divisiblebyzero.Spectacle MoveToUpperLeft -data 62706c6973743030d40102030405061a1b582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731111008002107b80035f100f4d6f7665546f55707065724c656674d2131415165a24636c6173736e616d655824636c61737365735d5a65726f4b6974486f744b6579a31718195d5a65726f4b6974486f744b6579585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11c1d54726f6f74800108111a232d32373c424b555a62696c6e70728489949dabafbdc6cfe1e4e90000000000000101000000000000001e000000000000000000000000000000eb 907 | defaults write com.divisiblebyzero.Spectacle MoveToUpperRight -data 62706c6973743030d40102030405061a1b582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731111008002107c80035f10104d6f7665546f55707065725269676874d2131415165a24636c6173736e616d655824636c61737365735d5a65726f4b6974486f744b6579a31718195d5a65726f4b6974486f744b6579585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11c1d54726f6f74800108111a232d32373c424b555a62696c6e7072858a959eacb0bec7d0e2e5ea0000000000000101000000000000001e000000000000000000000000000000ec 908 | defaults write com.divisiblebyzero.Spectacle RedoLastMove -data 62706c6973743030d40102030405061a1b582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c617373110b008002100680035c5265646f4c6173744d6f7665d2131415165a24636c6173736e616d655824636c61737365735d5a65726f4b6974486f744b6579a31718195d5a65726f4b6974486f744b6579585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11c1d54726f6f74800108111a232d32373c424b555a62696c6e70727f848f98a6aab8c1cadcdfe40000000000000101000000000000001e000000000000000000000000000000e6 909 | defaults write com.divisiblebyzero.Spectacle UndoLastMove -data 62706c6973743030d40102030405061a1b582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731109008002100680035c556e646f4c6173744d6f7665d2131415165a24636c6173736e616d655824636c61737365735d5a65726f4b6974486f744b6579a31718195d5a65726f4b6974486f744b6579585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11c1d54726f6f74800108111a232d32373c424b555a62696c6e70727f848f98a6aab8c1cadcdfe40000000000000101000000000000001e000000000000000000000000000000e6 910 | 911 | ############################################################################### 912 | # Kill affected applications # 913 | ############################################################################### 914 | 915 | for app in "Activity Monitor" "Address Book" "Calendar" "Contacts" "cfprefsd" \ 916 | "Dock" "Finder" "Google Chrome" "Google Chrome Canary" "Mail" "Messages" \ 917 | "Opera" "Photos" "Safari" "SizeUp" "Spectacle" "SystemUIServer" "Terminal" \ 918 | "Transmission" "Tweetbot" "Twitter" "iCal"; do 919 | killall "${app}" &> /dev/null 920 | done 921 | echo "Done. Note that some of these changes require a logout/restart to take effect." 922 | 0 923 | --------------------------------------------------------------------------------