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.
$ git clone https://github.com/zzzaim/dotfiles.git
$ dotfiles/install.sh
This will use Stow to symlink dotfiles into $HOME.
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 |
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. |
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.
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 ✓
- GitHub does dotfiles: links to other dotfile repos, utils, frameworks.
- Awesome dotfiles: A curated list of dotfiles resources.
- GNU Stow: a symlink farm manager.