Plain GNU stow packages and a Brewfile.
git clone https://github.com/freethinkel/dotfiles ~/Developer/infra/dotfiles
~/Developer/infra/dotfiles/install.shinstall.sh is safe to run again after every pull. It does this:
- on macOS, runs
brew bundle, installs the IoskeleyMono font and sets a fewdefaults - stows terminal packages everywhere and desktop packages on macOS
- applies
snowfall-darkon the first run, and only relinks the current theme after that
If an app replaced one of the symlinks with a real file, stow stops with a conflict. Move that file away and run it again.
Everything in $HOME links back here, so editing a file in the repo changes the live config.
To add a package, make a dir that mirrors $HOME, like foo/.config/foo/config,
and add foo to PACKAGES in install.sh.
| path | what |
|---|---|
<package>/ |
stow package, mirrors $HOME |
bin/ |
scripts like theme and wallpaper, added to PATH in .zshrc |
themes/ |
palettes and templates for theme set <name>, downloaded ones are gitignored |
.env |
secrets, gitignored |
theme set <name> renders themes/templates into ~/.config/theme and points the apps at it.
theme link redoes the links without rendering.
theme install <git-url> clones an Omarchy theme into themes/, moves its backgrounds to the wallpaper folder and applies it.
Wallpapers live in ~/Pictures/wallpapers/<theme>/, outside git.
wallpaper next cycles through the folder for the current theme, wallpaper set <path> sets one image.