Everything here is provided "as is" under an MIT license, without warranty of any kind.
- assumes a GNU/Linux-style userland
home/
contains files to be installed into the user home directory, separating them from things needed to maintain the repository, e.g. for Visual Studio Code configuration:home/.config/Code/User/
contains the files to install into~/.config/Code/User/
.vscode/
contains files specific to working in thedotfiles
repository workspace
install.sh
sets up the home directory- rather than symlink entire directories, individual files are symlinked after creating their directories, allowing finer control over which files are kept in version control
- for better ergonomics,
bin
scripts are symlinked without their extension; additionally, Python scripts are symlinked inkebab-case
(which is easier to type) rather than the in-repositorysnake_case
(which isimport
able)
- many environments ship their own
~/.bashrc
with environment-specific items and interoperability with those setups is done by not includinghome/.bashrc
here but rather relying on the fact that most~/.bashrc
files will source~/.bash_aliases
if it exists, which is included here; theinstall.sh
setup script can make minor tweaks to environment-provided~/.bashrc
files - some items assume the presence of other things (e.g. a script might assume
that certain
.gitconfig
aliases are configured or that another script can be called using its installed name), so partial installs might not work without also handling dependencies
- Awesome dotfiles and
GitHub does dotfiles have various tips for
dotfiles
repositories, like alternatives to a bespokeinstall.sh
- Personalizing Codespaces for your account
explains how GitHub handles
dotfiles
repositories