Find a file
2016-12-17 03:06:41 -05:00
.enabled.d Complete refactor + arch linux support 2016-10-19 16:56:37 +02:00
bin Refactor bin scripts 2016-11-21 23:58:57 -05:00
browser Add browser userstyles 2016-10-20 23:47:34 +02:00
dev init.zsh => env.zsh 2016-11-05 01:53:44 +01:00
docker docker: add --needed flag to pacman in install script 2016-11-10 18:38:35 +01:00
editor editor/neovim/install: refactor + don't reinstall on arch 2016-12-16 18:40:01 -05:00
os os/arch/.xprofile: fewer startup programs (use systemd instead) 2016-12-17 03:06:41 -05:00
recipes Add editor/vimlite (and update recipes/remote to use it) 2016-10-30 14:39:08 +01:00
shell Move ls aliases to their respective os topics 2016-12-16 22:26:34 -05:00
vcs vcs/git/install: refactor + don't reinstall|confirm 2016-12-16 18:38:31 -05:00
weechat +weechat config 2016-11-15 02:42:14 +01:00
.gitignore Add mpd temp files to gitignore 2016-11-03 19:07:22 +01:00
bootstrap bootstrap: make binary symlink dest absolute 2016-12-16 18:34:18 -05:00
clean Rewrite bootstrap; +clean script, update README 2016-11-15 02:20:36 +01:00
LICENSE Update readme; add license 2016-03-03 11:03:47 -05:00
README.md Rewrite bootstrap; +clean script, update README 2016-11-15 02:20:36 +01:00

Henrik's dotfiles

MIT

My dotfiles. Fuel for my madness. Designed for MacOS, Arch Linux and the various debian-based boxes I frequently ssh into.

It is organized into topics, some with their own READMEs. Check them out for more targeted information. The ./boostrap script is used to install and update them.

Bootstrap

bootstrap is my idempotent dotfile deployment script. This is how it works:

You pass the directories of "topics" you want to install and it will:

  1. symlink $topic/bin/* to ~/.bin/
  2. symlink $topic/.* to ~/ and $topic/.*/* to ~/.$1/ (i.e. 2-level symlinking). e.g. os/arch/.Xresources will be symlinked to ~/.Xresources, and os/arch/.config/redshift.conf will be symlinked to ~/.config/redshift.conf (~/.config is not a symlink).
  3. run $topic/install the first time
  4. run $topic/update on consecutive runs
  5. symlink $topic to $DOTFILES/.enabled.d/ to keep track of what's enabled. Running bootstrap without arguments will run this process on all enabled topics in .enabled.d/.

NOTE: Be sure to add ~/.bin to PATH

Usage: bootstrap [-iuldyn] [topic1[ topic2[ ...]]]

Options:
  -d  Do a dry run (only output commands, no changes)
  -i  Don't run install scripts
  -l  Don't symlink dotfiles or bin scripts
  -n  Don't overwrite conflicts (no prompts
  -u  Don't run update scripts
  -y  Overwrite conflicts (no prompts)

Or write a recipe list (examples in recipes/):

  • bootstrap $(recipes/ganymede) (my laptop)

To update the topics that you've already enabled, simply run bootstrap, and it will update your symlinks and run $topic/update wherever they may exist.

A few good-to-knows (where $topic is an enabled topic):

  • zshrc auto-sources $topic/*.zsh
  • $topic/bin/* scripts will be symlinked to ~/.bin. The included bash/zsh topics add ~/.bin to PATH.

Clean

clean will delete broken symlinks in $HOME, and can "disable" topics by removing their symlinks in .enabled.d/

Usage: clean [-du]

Options:
  -d  Do a dry run (only output commands, no changes)
  -u  Uninstall all enabled topics

Relevant