# 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/`. ![Terminal.app](https://raw.github.com/nicksp/dotfiles/master/iterm/nick-terminal.png) 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 ## Installation ```sh $ git clone https://github.com/nicksp/dotfiles.git ~/.dotfiles $ cd ~/dotfiles $ chmod +x setup.sh $ ./setup.sh ``` ## Remotely install using curl Alternatively, you can install this into `~/.dotfiles` remotely without Git using curl: ```sh sh -c "`curl -fsSL https://raw.github.com/nicksp/dotfiles/master/remote-setup.sh`" ``` Or, using wget: ```sh sh -c "`wget -O - --no-check-certificate https://raw.githubusercontent.com/nicksp/dotfiles/master/remote-setup.sh`" ``` ## Customize ### Local Settings The dotfiles can be easily extended to suit additional local requirements by using the following files: #### `~/.zsh.local` If the `~/.zsh.local` file exists, it will be automatically sourced after all the other [shell related files](shell), thus, allowing its content to add to or overwrite the existing aliases, settings, PATH, etc. #### `~/.gitconfig.local` If the `~/.gitconfig.local` file exists, it will be automatically included after the configurations from [`~/.gitconfig`](git/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.: ```sh [user] name = Nick Plekhanov email = nick@example.com ``` ## OS X Defaults My favorite part of this repo is the [set-defaults](osx/set-defaults.sh) script for OS X. ## Resources I actively watch the following repositories and add the best changes to this repository: - [GitHub ❤ ~/](http://dotfiles.github.com/) - [Mathias’s dotfiles](https://github.com/mathiasbynens/dotfiles) - [Nicolas Gallagher’s dotfiles](https://github.com/necolas/dotfiles) - [Cătălin’s dotfiles](https://github.com/alrra/dotfiles) - [Paul's dotfiles](https://github.com/paulirish/dotfiles) - [Jacob Gillespie’s dotfiles](https://github.com/jacobwg/dotfiles) ## License The code is available under the [MIT license](LICENSE).