These are my core personal dotfiles that are machine (mac/linux) agnostic. They are licensed under MIT.
I use two version controlled repositories to track and manage my dotfiles. The core repository (this one) uses dotbot, provides core shell/R/git/etc. configurations, and is pushed to github. Each machine also has the opportunity for a second, local-only dotfiles repo (located at ~/dotfiles_local
). This allows for machine specific configurations to be set up as needed.
The files from this repository are symlinked to the key files in my home directory. The files in the dotfile_local
directory are sourced as needed by the profiles this directory - typically they mainly set paths and other local system things.
I keep my secrets (tokens; not like my most embarassing moment or my greatest fears) in a git-ignored file within my home directory ("~/.secrets"). My profiles parse and export these secrets as needed.
- In your home directory, run:
git clone https://github.com/ryanb8/dotfiles.git \
&& cd dotfiles \
&& ./install
This will not overwrite any existing profiles. The install list will report out on what was not linked/overwritten.
The install script is idempotent - feel free to run it again. This is usefull if you want to move current local profiles to the ~/dotfiles_local/*
directory (see below).
On initial install you may want to manually update your .gitconfig
using the stubs provided in the repo. Gitconfig can't be automated as it's user/platform specific.
- If profiles already existed, and you don't want to use the core profiles, then you are done. If you do want to use the core profiles, move/copy the desired content from the old profiles to the newly created
~/dotfiles_local/
folder and the associated scripts (listed belows). Adjust the core profiles to source files if any new files are created.
Expected files in dotfiles_local
(will be created if dotfiles_local
does not exist):
~/dotfiles_local/generic_shell_after.sh
~/dotfiles_local/generic_shell_before.sh
~/dotfiles_local/bash_profile_after.sh
~/dotfiles_local/zshrc_after.zsh
~/dotfiles_local/bash_profile_before.sh
~/dotfiles_local/zshrc_before.zsh
To update core dotfiles, edit them within the dotfiles git repository.
- I use dotbot to sync/vcs my dotfiles. It is licensed under MIT.
- I use several packages from the zsh-users organization; this includes zsh-syntax-highlighting, zsh-autosuggestions, zsh-history-substring-search, zsh-completions - they use a variety of licenses: bsd-3, MIT, and the zsh license.
- I use fzf-tab which uses MIT.
- I use both git-completion and git-prompt which are included in the base git distribution, though are user contributed by Shawn Pearce et. al. Git is licensed under GNU General Public License version 2.