Skip to content

iamnewton/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles(1)

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.

Installation

⚠️ This will overwrite existing dotfiles in your $HOME directory.

$ /bin/bash -c "$(curl -#fL https://raw.githubusercontent.com/iamnewton/dotfiles/main/bin/dotfiles)"

Requirements

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.

Features

Besides some custom bash prompts, there are some <tab> completion libraries installed as well.

Custom bash prompt

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.

Screenshot

Local/private Bash configuration

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.


Acknowledgements

Inspiration and code was taken from many sources, including (in lexicographical order):