Shell Clean JavaScript Python Perl CSS CoffeeScript
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

Nick Plekhanov's Dotfiles

This is a collection of dotfiles and scripts I use for customizing OS X to my liking and setting up the software development tools I use on a day-to-day basis. They should be cloned to your home directory so that the path is ~/dotfiles/. The included setup script creates symlinks from your home directory to the files which are located in ~/dotfiles/.

The setup script is smart enough to back up your existing dotfiles into a ~/dotfiles_old/ directory if you already have any dotfiles of the same name as the dotfile symlinks being created in your home directory.

I also prefer zsh as my shell of choice. As such, the setup script will also clone the oh-my-zsh repository from my GitHub. It then checks to see if zsh is installed. If zsh is installed, and it is not already configured as the default shell, the setup script will execute a chsh -s $(which zsh) command. This changes the default shell to zsh, and takes effect as soon as a new zsh is spawned or on next login.

So, to recap, the install script will:

  • back up any existing dotfiles in your home directory to ~/dotfiles_old/
  • create symlinks to the dotfiles in ~/dotfiles/ in your home directory
  • clone the oh-my-zsh repository from my GitHub (for use with zsh)
  • check to see if zsh is installed, if it isn't, try to install it
  • if zsh is installed, run a chsh -s to set it as the default shell



$ git clone ~/dotfiles
$ cd ~/dotfiles
$ chmod +x
$ ./

Remotely install using curl

Alternatively, you can install this into ~/dotfiles remotely without Git using curl:

sh -c "`curl -fsSL`"

Or, using wget:

sh -c "`wget -O - --no-check-certificate`"


Local Settings

The dotfiles can be easily extended to suit additional local requirements by using the following files:


If the ~/.zsh.local file exists, it will be automatically sourced after all the other shell related files, thus, allowing its content to add to or overwrite the existing aliases, settings, PATH, etc.


If the ~/.gitconfig.local file exists, it will be automatically included after the configurations from ~/.gitconfig, thus, allowing its content to overwrite or add to the existing git configurations.

Note: Use ~/.gitconfig.local to store sensitive information such as the git user credentials, e.g.:

  name = Nick Plekhanov
  email =

OS X Defaults

My favorite part of this repo is the set-defaults script for OS X.


I actively watch the following repositories and add the best changes to this repository:


The code is available under the MIT license.