Charles Reid
440975fd5a
|
7 years ago | |
---|---|---|
.aliases | 7 years ago | |
.bash_profile | 7 years ago | |
.bash_prompt | 7 years ago | |
.bashrc | 7 years ago | |
.exports | 7 years ago | |
.functions | 7 years ago | |
.gdbinit | 7 years ago | |
.gitconfig | 7 years ago | |
.gitignore | 7 years ago | |
.gvimrc | 7 years ago | |
.hushlogin | 7 years ago | |
.inputrc | 7 years ago | |
.screenrc | 7 years ago | |
.tmux.conf | 7 years ago | |
.vimrc | 7 years ago | |
LICENSE | 7 years ago | |
README.md | 7 years ago | |
bootstrap.sh | 7 years ago | |
get-docker.sh | 7 years ago | |
pre_bootstrap.sh | 7 years ago | |
set_machine_name.sh | 7 years ago |
README.md
Vanilla Dotfiles
This contains the baseline standard for dotfiles.
Each machine repository maintains its own independent dotfiles, so having this vanilla repository as a submodule is for the convenience of comparing the baseline dotfiles to the machine's specific dotfiles. (These are not programmatically used.)
Table of Contents
- Machine Dotfiles Repositories
- Inspiration
- Installation
- Setting PATH
- Custom Commands Without Committing
Machine Dotfiles Repositories
Repositories containing machine-specific dotfiles:
Inspiration
The baseline dotfiles come from two sources:
If I include Mathias' thanks section, there are a lot more people:
- @ptb and his macOS Setup repository
- Ben Alman and his dotfiles 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
- Sindre Sorhus
- Tom Ryder and his dotfiles repository
- Kevin Suttle and his dotfiles repository and macOS-Defaults project, which aims to provide better documentation for
~/.macos
- Haralan Dobrev
- Anyone who contributed a patch or made a helpful suggestion
Installation
Steps:
- Clone this repository
- (Optional) Make modifications as needed
- Run the pre-bootstrap script
- Modify the machine hostname
- Run the bootstrap script
- (Optional) Install software
Vanilla dotfiles repo does not make any assumptions about package managers, platforms, or operating systems, so it does not try to install any softare.
That is all taken care of in the machine dotfiles repositories.
Step 1: Clone the Repo
git clone https://charlesreid1.com:3000/dotfiles/vanilla.git
Step 2: (Optional) Make Modifications
Make modifications to files as needed using a text editor like vim.
Step 3: Run the Pre-Bootstrap Script
This changes your shell to bash and makes space for vim dotfiles.
It is a good idea to use a modern and standard version of Bash.
On a Mac, use the Homebrew version of bash at /usr/local/bin/bash
and not the system bash.
On -nix machines, use /bin/bash
and not /bin/sh
.
./pre_bootstrap.sh
Step 4: Modify the Machine Hostname
Set the machine host name using set_machine_name.sh
.
This script makes no assumptions about platform,
so it tries to determine your OS and act accordingly.
./set_machine_name.sh
It will prompt you for the hostname you want to set.
Step 5: Run the Bootstrap Script
Run the bootstrap script, which will ask for your confirmation and will then copy all of the dotfiles in this directory to your home directory. This will overwrite any existing dotfiles.
./bootstrap.sh
Step 6: (Optional) Install Software
Use Homebrew or Aptitude or Opkg or some other package manager to install software.
Setting $PATH
The $PATH
variable controls where the shell will look for programs.
To modify your $PATH
variable, you can do two things:
- Put path modifications in
$HOME/.path
- Add path modifications to
$HOME/.bash_profile
The ~/.path
file is run before other files like .aliases
, so it should pick up the correct version of binaries
in subsequent sourced dotfiles.
An example ~/.path
file might include:
export PATH="/custom/program/path/bin:$PATH"
Custom Commands Without Committing
Use the ~/.extra
file to set any extra settings without committing them to the repository.
# Git credentials
# Not in the repository
# This prevents people from using my github credentials
GIT_AUTHOR_NAME="Charles Reid"
GIT_AUTHOR_EMAIL="charlesreid1@gmail.com"
GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"
git config --global user.name "$GIT_AUTHOR_NAME"
git config --global user.email "$GIT_AUTHOR_EMAIL"
Also use the .extra
file to override settings, functions, etc from other dotfiles.