iamnewton / dotfiles

UNIX-based system configuration for software development

Home Page:https://github.com/iamnewton/dotfiles#readme

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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):

About

UNIX-based system configuration for software development

https://github.com/iamnewton/dotfiles#readme

License:GNU General Public License v3.0


Languages

Language:Shell 99.5%Language:Perl 0.5%