Giter Club home page Giter Club logo

dotfiles's Introduction

Dotfiles (Adapted from Nicolas Gallagher’s)

My OS X dotfiles.

How to install

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

$ bash -c "$(curl -fsSL raw.github.com/Wilto/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.

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
-l, --list List of additional applications to install
--no-packages Suppress package updates
--no-sync Suppress pulling from the remote repository

Features

Automatic software installation

Homebrew formulae:

Node packages:

N.B. If your pre-existing Homebrew installation is not in /usr/local then you must prepend your custom installation's bin to the PATH in .bash_profile.local:

# Add `brew` command's custom location to PATH
PATH="/opt/acme/bin:$PATH"

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 will 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

I use a custom bash prompt based on the Solarized color palette and influenced by @gf3's and @cowboy's custom prompts. For best results, you should install iTerm2 and import Solarized Dark.itermcolors.

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.

Screenshot:

Also, because I would constantly find myself working on gh-pages despite having it right there in my prompt, I added a little color hinting on the current branch. While I was at it, I set any branch with “stable” in the name in an extra scary shade of red.

Local and private configurations

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 commands should be stored in a ~/.bash_profile.local file. Any commands included in 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.

Here is an example ~/.bash_profile.local:

# PATH exports
PATH=$PATH:~/.gem/ruby/1.8/bin
export PATH

# Git credentials
# Not under version control to prevent people from
# accidentally committing with your details
GIT_AUTHOR_NAME="Muscles McTouchdown"
GIT_AUTHOR_EMAIL="[email protected]"
GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"
# Set the credentials (modifies ~/.gitconfig)
git config --global user.name "$GIT_AUTHOR_NAME"
git config --global user.email "$GIT_AUTHOR_EMAIL"

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

Acknowledgements

Inspiration and code was taken from many sources, including:

dotfiles's People

Contributors

necolas avatar wilto avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.