dotfiles
dotfiles copied to clipboard
My dotfiles
dotfiles
View my dotfiles rendered over at dotfiles.utf9k.net
Currently, I use chezmoi as a dotfile manager which runs a bunch of preinstallation scripts and then applies all dotfiles in this repo to $HOME
.
This differs quite a bit from my previous setup which used GNU Stow to symlink files to $HOME
but so far, I like it a lot and it makes the setup process mostly automatic between machines.
All I really tend to do is run chezmoi update
and changes are applied to various machines without much trouble.
Installation
The nice thing about chezmoi is that it's fairly one shot meaning you can go from a fresh machine with no tools to a set up config with one command. If you're interested in installing my dotfiles for whatever reason, you can do so with this one liner:
sh -c "$(curl -fsLS git.io/chezmoi)" -- init --apply marcus-crane
That should do pretty much everything including tangling my zsh config and running all the pre-install scripts that use Brew
to add system dependencies and so on.
A note on tangling files
You may notice that some configuration files are seemingly missing with .md
files in their place.
This is because a few, and in time most of, my config files are kept as "literate configuration".
In short, all of the surrounding commentary is stripped and the correct file is generated off of the source code blocks.
In order to "tangle" them into a proper config, I use lugh, a hacky custom made tool for tangling markdown.
I have used Emacs org-tangle
for this job and it's nice but it's also quite a bit of overhead to get it running I think. Generally on a new machine, compiling Emacs can take quite some time.
Anyway, lugh
should be installed automatically as part of the initial chezmoi apply
so with that, you can "tangle" the file you're interested in like so:
lugh -f <file>
A working example would be:
lugh -f zshrc.md
# Wrote /Users/marcus/.local/share/chezmoi/dot_zshrc.tmpl
Instead of anything fancy, I just "tangle" the contents into a file that chezmoi expects and since it's a .tmpl
file, it can also make use of chezmoi's built in variables.
Extras to be manually installed
Wallpaper - evangelion-clock-screensaver