These are my linux/macOS configuration files. They’re tracked in a git repository separate from the working tree, which is just my home directory; this replaces an ongoing symlink song and dance for a little upfront setup effort. Given that the upfront work can be copy-pasted, it’s a pretty great tradeoff.
To get up and running:
- clone the dotfiles repo
- copy the files over to their proper locations, and
- configure the dotfile git repo to ignore all untracked files
The last step is so neither I nor you ever accidentally push our whole home directory to github, lol. So:
git clone --separate-git-dir=$HOME/.dots [email protected]:ambirdsall/dots.git tmpdotfiles
rsync --recursive \
--verbose \
--exclude '.git' \
--backup --suffix=.dots.orig \
tmpdotfiles/ $HOME/
rm -r tmpdotfiles
git --git-dir=$HOME/.dots/ --work-tree=$HOME config --local status.showUntrackedFiles no
If you’ve already installed emacs, you can now run
make install
followed by whichever of the following is appropriate
make linux
make macos
Now, aspirationally:
dots doctor
Once you have a clean bill of health, tangle all literate configs with
dots build
The ~/bin/dots
file provides a dots
command to handle all interaction with the git repo. It wraps
git
, passing the correct directories to --git-dir
and --work-tree
and paving a few common paths:
dots
- defaults to
git status -s
when called with no arguments dots c some commit message
- expands to
dots commit -m "some commit message"
cf.
doom help +org tangle