/dotfiles

Zaim's dotfiles

Primary LanguageShellMIT LicenseMIT

Dotfiles

This is Zaim's dotfiles. It is organized and installed using GNU Stow through an install.sh script that has some minimal custom rules and conventions.

Install

$ git clone https://github.com/zzzaim/dotfiles.git
$ dotfiles/install.sh

This will use Stow to symlink dotfiles into $HOME.

Packages

As per GNU Stow convention, each directory in this repo is a package:

a related collection of files and directories that you wish to administer as a unit.

Package Description
bash Base bash configs, scripts
bin General utilities
colors Shell color scheme scipts (base16)
git Git config
nvm Node version manager
ssh SSH config / utils
tmux Tmux config / utils
vim vim config

Package structure

A package is organized using a conventional folder structure.

Folder Description
bin/ Used for programs and scripts. Example: tmux/bin/startmux
.bashrc.d/ Used to add custom scripts to .bashrc. Example: nvm/.bashrc.d. Prefix files with a number to control source ordering.

Package managing

If a package contains a .stow-skip file in its root directory, install.sh will not install that package.

If a package contains a .stow-disabled file in its root directory, install.sh will uninstall it from $HOME.

Testing

There is a simple unit test in .test, which tests the custom install.sh script rules:

$ ./.test/test.sh
Running tests in ./.test/test.sh
Running test_disabled... SUCCESS ✓
Running test_disabled_none... SUCCESS ✓
Running test_installed... SUCCESS ✓
Running test_skip... SUCCESS ✓

Links