Skip to content

Instantly share code, notes, and snippets.

@corbanb
Forked from saetia/gist:1623487
Last active August 29, 2015 13:59
Show Gist options
  • Save corbanb/10900154 to your computer and use it in GitHub Desktop.
Save corbanb/10900154 to your computer and use it in GitHub Desktop.
OSX - PHP/Ruby/Node - Developer Setup

Source Code Pro, Chrome, Firefox, iTerm, Sublime Text, Sequel Pro

OS X Preferences


#Disable window animations
defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool false

#Enable repeat on keydown
defaults write -g ApplePressAndHoldEnabled -bool false

# Expand save panel by default
defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true

#Disable ext change warning
defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false

#Disable webkit homepage
defaults write org.webkit.nightly.WebKit StartPageDisabled -bool true

# Check for software updates daily, not just once per week
defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1

#Use current directory as default search scope in Finder
defaults write com.apple.finder FXDefaultSearchScope -string "SCcf"

#Show Path bar in Finder
defaults write com.apple.finder ShowPathbar -bool true

#Disable sound effect when changing volume 
defaults write -g com.apple.sound.beep.feedback -integer 0

#Show Status bar in Finder
defaults write com.apple.finder ShowStatusBar -bool true

#Enable AirDrop over Ethernet and on unsupported Macs
defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool true

#Set a blazingly fast keyboard repeat rate
defaults write NSGlobalDomain KeyRepeat -int 0

# Show icons for hard drives, servers, and removable media on the desktop
defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true &&
defaults write com.apple.finder ShowHardDrivesOnDesktop -bool true &&
defaults write com.apple.finder ShowMountedServersOnDesktop -bool true &&
defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool true

# Avoid creating .DS_Store files on network volumes
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true


#Set a shorter Delay until key repeat
defaults write NSGlobalDomain InitialKeyRepeat -int 12

#Disable disk image verification
defaults write com.apple.frameworks.diskimages skip-verify -bool true &&
defaults write com.apple.frameworks.diskimages skip-verify-locked -bool true &&
defaults write com.apple.frameworks.diskimages skip-verify-remote -bool true

#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


# Disable smart quotes as it’s annoying for messages that contain code
defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "automaticQuoteSubstitutionEnabled" -bool false


# Trackpad: map bottom right corner to right-click
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick -int 2 &&
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick -bool true &&
defaults -currentHost write NSGlobalDomain com.apple.trackpad.trackpadCornerClickBehavior -int 1 &&
defaults -currentHost write NSGlobalDomain com.apple.trackpad.enableSecondaryClick -bool true

# 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 &&
defaults write NSGlobalDomain WebKitDeveloperExtras -bool true

#Show the ~/Library folder
chflags nohidden ~/Library

#Show absolute path in finder's title bar. 
defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES

###Shell


####Switch to z-shell

curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh

####Homebrew

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
brew install wget node jpegoptim pngcrush redis memcached libmemcached colordiff imagemagick icoutils ack hub

####Update .zshrc

#syntax highlighting
git clone git://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting

####Set hostname

sudo scutil --set HostName mothership

###Git


####Setup Github

ssh-keygen -t rsa -C "corbanb@gmail.com"

#copy ssh key to clipboard for adding to github.com
pbcopy < ~/.ssh/id_rsa.pub

#test connection
ssh -T git@github.com

#set git config values
git config --global user.name "Corban Baxter" && 
git config --global user.email "corbanb@gmail.com" &&
git config --global github.user corbanb && 
git config --global core.editor "subl -w" &&
git config --global color.ui true &&
git config --global push.default simple

#token
git config --global github.token your_token_here

###Sublime Text


####Add Sublime Text CLI

sudo mkdir -p "/usr/local/bin/" && ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" "/usr/local/bin/subl"

####Settings

{
	"close_windows_when_empty": true,
	"color_scheme": "Packages/Color Scheme - Default/Solarized (Light).tmTheme",
	"default_encoding": "UTF-8",
	"fallback_encoding": "Cyrillic (Windows 1251)",
	"font_face": "Source Code Pro",
	"font_size": 13,
	"highlight_line": true,
	"highlight_modified_tabs": true,
	"ignored_packages":
	[
		"Vintage"
	],
	"margin": 2,
	"open_files_in_new_window": false,
	"show_full_path": true,
	"show_tab_close_buttons": true,
	"spell_check": true,
	"tab_size": 2,
	"translate_tabs_to_spaces": true,
	"trim_trailing_white_space_on_save": true,
	"use_simple_full_screen": true,
	"word_separators": "./\\()\"'-:,.;<>~!@#%^&*|+=[]{}`~?"
}

####Key Bindings

[
	{ "keys": ["super+b"], "command": "expand_selection", "args": {"to": "brackets"} },
	{ "keys": ["super+f"], "command": "show_panel", "args": {"panel": "replace"} },
	{ "keys": ["super+alt+f"], "command": "show_panel", "args": {"panel": "find"} }
]

####Sublime Packages Install Package Manager - https://sublime.wbond.net/installation#st3 Github Tools - https://sublime.wbond.net/packages/Github%20Tools Gist - https://sublime.wbond.net/packages/Gist

Ruby


Ruby version manager

curl -L https://get.rvm.io | bash -s stable --rails

Gems

gem install pygmentize growl guard guard-phpunit bropages capistrano compass

Node


Packages

npm install -g grunt-cli bower yo

Local Webserver

####Enable virtual hosts

This will allow you to serve folders under ~/Sites/ as websites.

  • ~/Sites
    • example.com
      • htdocs
        • index.html

to access this site, visit http://example.com.build

sudo touch "/etc/apache2/users/$USER.conf"
subl "/etc/apache2/users/$USER.conf"
DocumentRoot "/Users/corban/Sites/"
NameVirtualHost *:80
<Directory "/Users/corban/Sites/">
    Options Indexes MultiViews FollowSymLinks Includes
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>
<VirtualHost *:80>
    UseCanonicalName off
    VirtualDocumentRoot /Users/corban/Sites/%-2+/htdocs
</VirtualHost>

####Apache Config

sudo wget https://gist.github.com/saetia/6096745/raw/8a4b8a752f26e3841fa2d91586e70723006e2f12/httpd.conf -O /etc/apache2/httpd.conf

####XDebug

brew install https://github.com/josegonzalez/homebrew-php/raw/master/Formula/xdebug-php.rb

####MySQL

brew install mysql

####MySQL Settings

#setup daemon
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents && launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

#start mysql
mysql.server start

#secure mysql
/usr/local/Cellar/mysql/5.6.17/bin/mysql_secure_installation

####Configure php.ini

sudo wget https://gist.github.com/saetia/6096739/raw/837b02be80f31edf73767e9b3d0ba2f765ee4be4/php.ini -O /etc/php.ini

####Restart apache

sudo apachectl graceful

aww yeah

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment