Requires homebrew and gnu stow brew install stow
git clone https://github.com/jeffwindsor/dotfiles <repo target path>stow -S --dir "<repo target path>" --target "$HOME" <package>dots-sync is a function which manages your ~/.config links to the dotfiles repo. It will link/unlink based on the install status of a program/package. Defaults to source=$DOTFILES but you can override with first parameter dots-sync ~/some-location.
source ./stow/.config/zsh/user-modules/stow.zsh
dots-syncStow creates symlinks in the $HOME directory pointing back into your local cloned copy of this repo.
Allowing for version control while allowing the programs to find the configs where they expect. Setting DOTFILES env variable to the path of your local cloned copy will be used as default source path in most functions as a usage simplification.
- Each top-level folder represents a config
source. - Each config
source:- Represents a single package (e.g. zsh, rg, bat, etc..)
- Root folder is named after the command not the package (e.g. rg not ripgrep)
- Is linked ONLY if the package is installed
- May add links to any sub folders in the
$HOME. (e.g zsh aliases and function files are distributed among multiple sources targeting$HOME/.config/zsh/user-modules/) - Will link all sub folders and files into the
$HOME, for example, source ofrg/.config/ripgrep/links to target as~/.config/ripgrep/
- Multiple hosts HACK: There are config
sourcesnamed after hostnames (e.g. Midnight, MidnightSun) which hold per-machine overrides
- Tinty from tinted-theming
- syncs all assigned terminal applications to the same color scheme (Base16 or Base24)
themefunction gives a meta picker (fzf) for theme choice and application