Typically software you buy comes with some sort of installer, why not your dotfiles? After manually setting up my dotfiles and installation for years, I decided to take a page from some other people's books and set up a script that will configure my machine to setup my bash profile and install a few core packages. Feel free to poke around the repository, fork it to make it your own, suggest things for me to include, log a bug, or maybe checkout the features list to see what's included.
N.B. This project has a Code of Conduct. By interacting with this repository, organization, and/or community you agree to abide by its terms.
$HOME
directory.
$ /bin/bash -c "$(curl -#fL https://raw.githubusercontent.com/iamnewton/dotfiles/main/bin/dotfiles)"
Ensure that you have the following dependencies installed on your system. If you're on MacOS then you already have these, but a Linux system may not come with all.
❗ 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 variable ($USERNAME
) found at the top of the bin/install.sh
script.
Besides some custom bash prompts, there are some <tab> completion libraries installed as well.
A custom bash prompt based on the Seti UI color palette and influenced by @necolas, @gf3 and @cowboy custom prompts. 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:
Symbol | Meaning |
---|---|
+ | Uncommitted changes |
! | Unstaged changes |
? | Untracked files |
$ | Stashed files |
For best results with iTerm, you should install the SETI color scheme for iTerm. Further details are in the $(dotfiles --prefix)/conf/bash/prompt
file.
Any private and custom Bash commands and configuration should be placed in a ~/.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
.
Here is an example ~/.bash_profile.local
:
# Github Issues library token
export GH_TOKEN="<insert github token>"
# Aliases
alias code="cd ~/Code"
❗ N.B. Because the $(dotfiles --prefix)/conf/git/config
file is copied to $HOME/.gitconfig
, any private git configuration specified in $HOME/.gitconfig.local
will not be committed to your dotfiles repository.
Inspiration and code was taken from many sources, including (in lexicographical order):
- @holman (Zach Holman) https://github.com/holman/dotfiles
- @mathiasbynens (Mathias Bynens) https://github.com/mathiasbynens/dotfiles
- @necolas (Nicolas Gallagher) https://github.com/necolas/dotfiles