This dotfiles repository utilizes the following:
-
Freshshell (fresh) to maintain and generate dotfiles
fresh is a tool to source shell configuration (aliases, functions, etc) from others into your own configuration files. It supports files such as ackrc and gitconfig. Think of it as Bundler for your dot files.
-
Homebrew (brew) for Mac command line tools automated installation
Homebrew installs the stuff you need that Apple didn’t.
-
Homebrew Cask (brew cask) for Mac Native Apps automated installation
Homebrew Cask extends Homebrew and brings its elegance, simplicity, and speed to OS X applications and large binaries alike. It only takes 1 line in your shell
Freshshell instructions suggest, installing your dotfiles in '~/.dotfiles'. To download, choose one of the options below.
Download using curl (not git):
mkdir ~/.dotfiles; curl -#L https://github.com/jalexanderfox/dotfiles/tarball/master | tar -xzv --strip-components 1 -C ~/.dotfiles
OR
Download using git:
cd; git clone https://github.com/jalexanderfox/dotfiles.git && mv dotfiles ~/.dotfiles
There are several options for installing part or all of what comes with this dotfiles repo. If you want to setup a new Mac, you might consider running the Full Install & Setup script. If you just need the dotfiles for a vagrant box or a linux environment, then you might consider running just the Dotfiles (fresh) Install & Setup script.
Now you need to decide whether you want to Full Install & Setup or setup individually:
As this repository relies heavily on the dotfiles created by others, it attempts to bring the best of theirs into this one but keeps them up to date by using fresh. Make sure you know what will be installed, setup and configured before executing these scripts.
Now that you have the repo, it's time to setup and install the parts that you want. Install & setup whatever and however you like. Want to install them individually? Go ahead. Want to install them all? You are braver than I am Full Install. Want to install some? Well you can do that too. Here is how:
Installs Homebrew(brew), Dotfiles(fresh) and Homebrew Casks (cask)
cd ~/.dotfiles && ./setup.sh brew fresh cask
cd ~/.dotfiles && ./setup.sh brew
cd ~/.dotfiles && ./setup.sh fresh
cd ~/.dotfiles && ./setup.sh terminal
cd ~/.dotfiles && ./setup.sh cask
This script will execute all of the Individual Install Scripts in the order in which they appear.
cd ~/.dotfiles && ./setup_all.sh
Add extra custom commands and private configuration without creating a new fork and without committing sensitive information to a public repo.
When running Dotfiles Fresh Setup, if ~/.dotfiles/.extra
and ~/.dotfiles/.private
do not exist, they will be created. You can use these files to add a few custom commands without the need to fork this entire repository and to add commands and configurations that you do not want to commit to a public repository. When fresh runs, it will source .extra and .private along with the other files. These files get sourced last so they override other configurations.
Example .extra or .private file:
# Git credentials
# Not in the repository,
# to prevent accidentally committing under the wrong name
GIT_AUTHOR_NAME="Jane Smith"
GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
git config --global user.name "$GIT_AUTHOR_NAME"
GIT_AUTHOR_EMAIL="janesmith@gmail.com"
GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"
git config --global user.email "$GIT_AUTHOR_EMAIL"
Additionally, fresh will touch ~/.gitconfig.local
which is used by your .gitconfig. You can place custom configurations here ~/.gitconfig.local (which is preferred, otherwise any time you fresh
your global configurations are wiped out.)
[user]
name = jared.fox
email = jared.fox@company.com
[credential]
helper = osxkeychain
NOTE: These files are set to be ignored by git automatically for you.
If you find that your .extra file is getting large, you may want to fork this repository instead.
- the setup_fresh.sh requires the gnu version of readlink and even if setup_brew.sh is run before setup_fresh.sh, it currently fails on mac because the $PATH does not yet have coreutils (with gnu readlink). The bash_profile can be sourced in the .freshrc as a temporary fix.
Suggestions/improvements welcome!
-
Tyler Beck and his dotfiles repository
-
Mathias Bynens and his dotfiles repository
-
@ptb and his OS X Lion Setup repository
-
Ben Alman and his dotfiles repository
-
Chris Gerke and his tutorial on creating an OS X SOE master image + Insta repository
-
Cãtãlin Mariş and his dotfiles repository
-
Gianni Chiappetta for sharing his amazing collection of dotfiles
-
Jan Moesen and his ancient
.bash_profile
+ shiny tilde repository -
Lauri ‘Lri’ Ranta for sharing loads of hidden preferences
-
Matijs Brinkhuis and his dotfiles repository
-
Nicolas Gallagher and his dotfiles repository
-
Tom Ryder and his dotfiles repository
-
anyone who contributed a patch or made a helpful suggestion