jack's dotfiles
Clone the respository into ~/dotfiles
.
You should technically be able to clone to wherever you want, since I tried to avoid relative paths in the setup process.
However, I use ~/dotfiles
and everything herein has been tested with respect to that.
git clone https://github.com/jackfletch/dotfiles.git
cd dotfiles
# run setup script that has yet to be written
The above install process will:
- Download the dotfiles to your computer (i.e.,
~/dotfiles
)
TODO:
- Create some additional directories (
$HOME/.vim/{backups,swaps,undo}/
) - Symlink files to
$HOME
- Install various necessary applications, command-line tools, and programming languages (Go)
- Install docker, kubernetes, containerd from source
- Set custom preferences
- Install vim plugins
TODO
There are settings that shouldn't be committed to a public git repo, because they either:
- should be different across your machines, or
- are personal or private (e.g.,
git
user name and email)
These dotfiles
can be easily extended to suit these additional local settings.
The following files, if they exist, will be sourced after their associated non-local counterparts, allowing their contents to add to or overwrite the default configuration:
Add custom aliases, exports, etc.:
# Set local aliases
alias starwars="telnet towel.blinkenlights.nl"
# Set PATH additions
PATH="$PATH:$HOME/dotfiles/bin"
export PATH
Note: Use ~/.gitconfig.local
to store sensitive information such as the git
user credentials, e.g.:
[user]
name = Jack Fletcher
email = jack@example.com
signingkey = XXXXXXXX
[commit]
# Sign commits using GPG.
# https://help.github.com/articles/signing-commits-using-gpg/
gpgsign = true
Add custom vim keybindings, commands, etc.:
" custom key bindings
" swap current character with next character and retain cursor position
nnoremap <silent> gc xph
If you decide to fork this project, do not forget to substitute my username with your own where applicable.
.tmux.conf
- tmux.tmux
- tmux "profiles".vim
,.vimrc
,.vimrc.local
- vim.inputrc
- input prompt behavior (readline
)
.aliases
- aliases.bash_profile
- sources other files, sets shell options and autocompletion.exports
- exports.prompt
- prompt.bashrc
- sources.bash_profile
.custom
- optional local config (.local
has a default use already).functions
- functions.path
- path
Bash file sourcing chain:
.bashrc
└── .bash_profile
├── .path
├── .prompt
├── .exports
├── .aliases
├── .functions
└── .custom
.gitattributes
.gitconfig
.gitconfig.local
- optional local config
- install script that has not be written yet
Inspiration and code was taken from many sources, including: