git clone https://github.com/brenodt/dotfiles.git
cd .dotfiles
# To see changes before they're made
stow --simulate .
# To create symlinks on parent directory
stow .
# To delete
stow --delete .
If there's customization you want ZSH to load on startup that is specific to this machine (stuff you don't want to commit into the repo), create ~/.env.sh
and put it in there. It will be loaded near the top of .zshrc.
The configuration files are managed via stow.
The main addition is the system to auto-install dependencies on a fresh system, which uses Ansible.
The structure is:
- Anything that needs to be ignored from symlinking gets added to the
.stow-local-config
file (keep in mind the proper rules for it: link) - stow symlinks to the target directory (default is the parent) by keeping the same structure found in the root. This means the fs should mimic that of the $HOME
Once configuration is done, just run stow .
There is a function called brewrapper
in zsh/aliases.zsh
which is used as an alias for brew
.
Whenever you interface with brew
- install, remove, update, tap, utap, and so on -
you are aliased to this function, that does:
- execute your
brew
command - regenerates the
Brewfile
(see brew bundle) - uses the
Brewfile
to set the dependencies for Ansible (via theinstall/brewdeps
script)
This means that maintaining the new dependencies you add/remove from brew is seamless.
Just remember to push the local changes to remote!