Skip to content

necolas/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles (Nicolas Gallagher)

My OS X dotfiles.

How to install

The installation step requires the XCode Command Line Tools and may overwrite existing dotfiles in your HOME and .vim directories.

$ bash -c "$(curl -fsSL https://raw.githubusercontent.com/necolas/dotfiles/master/bin/dotfiles)"

N.B. If you wish to fork this project and maintain your own dotfiles, you must substitute my username for your own in the above command and the 2 variables found at the top of the bin/dotfiles script.

What the installation does

The installation script performs the following steps in order:

  1. Downloads the repository to ~/.dotfiles (if not already present)
  2. Installs Homebrew (if not already installed)
  3. Installs Git via Homebrew (if not already installed)
  4. Initializes a Git repository in ~/.dotfiles and connects it to the remote
  5. Syncs with the remote repository to get the latest changes
  6. Installs packages via Homebrew and npm
  7. Creates symlinks from your home directory to the dotfiles:
    • ~/.bash_profile~/.dotfiles/shell/bash_profile
    • ~/.inputrc~/.dotfiles/shell/inputrc
    • ~/.gitignore~/.dotfiles/git/gitignore
    • ~/.vim~/.dotfiles/vim
  8. Copies ~/.dotfiles/git/gitconfig to ~/.gitconfig (not symlinked to allow local git credentials)
  9. Applies macOS defaults (optional, with confirmation prompt)

How to update

You should run the update when:

  • You make a change to ~/.dotfiles/git/gitconfig (the only file that is copied rather than symlinked).
  • You want to pull changes from the remote repository.
  • You want to update Homebrew formulae and Node packages.

Run the dotfiles command:

$ dotfiles

Options:

-h, --help Help
--no-packages Suppress package updates
--no-sync Suppress pulling from the remote repository

How to use

Local/private Bash and Vim configuration

Any special-case Vim directives local to a machine should be stored in a ~/.vimrc.local file on that machine. The directives will then be automatically imported into your master .vimrc.

Any private and custom Bash commands and configuration should be placed in the ~/.bash_profile.local file. This file will not be under version control or committed to a public repository. If ~/.bash_profile.local exists, it will be sourced for inclusion in bash_profile.

N.B. Because the git/gitconfig file is copied to ~/.gitconfig, any private git configuration specified in ~/.bash_profile.local will not be committed to your dotfiles repository.

Features

Automatic software installation

Homebrew formulae:

Custom OS X defaults

Custom OS X settings can be applied during the dotfiles process. They can also be applied independently by running the following command:

$ osxdefaults

Bootable backup-drive script

These dotfiles include a script that uses rsync to incrementally back up your data to an external, bootable clone of your computer's internal drive. First, make sure that the value of DST in the bin/backup script matches the name of your backup-drive. Then run the following command:

$ backup

For more information on how to setup your backup-drive, please read the preparatory steps in this post on creating a Mac OS X bootable backup drive.

Custom bash prompt

When your current working directory is a Git repository, the prompt will display the checked-out branch's name (and failing that, the commit SHA that HEAD is pointing to). The state of the working tree is reflected in the following way:

+ Uncommitted changes in the index
! Unstaged changes
? Untracked files
$ Stashed files

Further details are in the bash_prompt file.

Acknowledgements

Inspiration and code was taken from many sources, including:

About

OS X dotfiles: bash, git, vim, etc.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •