My OSX setup

Posted on

I have a really simple setup for my Mac, the idea being I can quickly get setup and start working on a new machine without to much kerfuffle. Here is a quick overview of the code I normally use to get going quickly.

Feel at home script

OSX has a few default settings that aren't great if you're a developer (Such as hiding file extensions). Ben Nunney wrote a super useful shell script to quickly configure OSXs settings, which I normally use.

After running Bens script, I run a few extra configuration settings to make OSX feel a little snappier:

#!/usr/bin/env sh
# Make OSX feel a little snappier, I normally run this after running

# Speed up window tranisations
defaults write NSGlobalDomain NSWindowResizeTime 0.01;

# Speed up mission control transition (F3)
defaults write expose-animation-duration -float 0.1; 

# Speed up Launchpad (F4)
defaults write springboard-show-duration -float 0.1;
defaults write springboard-hide-duration -float 0.1;

# Stop dock item jumping when they want my attension
defaults write no-bouncing -bool TRUE;

# Set preview to default screenshots to jpg.
defaults write type jpg
killall SystemUIServer

# Restart dock so effects can kick in.
killall Dock;

# Turn off volume change overlays 
sudo defaults write /System/Library/LaunchAgents/ Disabled --bool YES
View on Gist Github

Homebrew and Homebrew Cask

It's a super pain to go and install all the apps and scripts I need, so I install Homebrew and Homebrew Cask to quickly install the stuff I want. Here are the essential libaries and apps I normally install:

#!/usr/bin/env sh
# Things I normally install when I first install Homebrew / Homebrew cask
# Make sure you've install XCode commandline tools & accepted the terms and conditions before running this.

# Homebrew stuff

## A nice text editor (Will show how to configure in another post)
brew install vim
brew install macvim

## Git 
brew install git
### Set the global configs for git
git config --global core.editor "vim"
git config --global push.default current

## Make searching in Vim easier.
brew install ack
brew install the_silver_searcher

## Node.JS
brew install node

## S3CMD - Makes it easy to talk to AWS S3
brew install s3cmd

## Makes adding SSH keys to servers easier.
brew install ssh-copy-id

# Homebrew Cask bits

## Development tools
brew cask install integrity
brew cask install virtualbox
brew cask install vagrant

## Firewall
brew cask install little-snitch
### I love little snitch, mostly because I setup the rules to stop Spotify connecting in P2P mode (My ISP sucks and throttles me when I p2p).

## Apps I use often
brew cask install google-chrome
brew cask install alfred
brew cask install flux
brew cask install steam
brew cask install transmission
brew cask install vlc
brew cask install spotify
brew cask install geektool
View on Gist Github


I use Vagrants for most my of development stuff, but it's pretty handy to have all the RVM goodness all setup for when I want to do a small bit of code.


I try to keep my dotfiles as slim as I can so I can remember everything. For the most part I've just got a few aliases setup that I've nabbed from Dan Harper and Phil Balchin

This was written by Mike Rogers, a freelance Ruby on Rails developer based in London.

Share the ♥ by sharing this!

If you want to discuss this post, feel free to tweet me (@MikeRogers0) or drop me an email. Any code samples unless stated otherwise are licensed under the The MIT License (MIT). Spotted a mistake? Send me a pull request :)