Find a file
2016-11-16 15:09:51 +01:00
.enabled.d Complete refactor + arch linux support 2016-10-19 16:56:37 +02:00
bin +bin/zzz: sleep pc or displays 2016-11-16 15:09:51 +01: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/emacs/install: refactor 2016-11-15 15:51:42 +01:00
os os/arch: revise install script 2016-11-15 21:48:06 +01:00
recipes Add editor/vimlite (and update recipes/remote to use it) 2016-10-30 14:39:08 +01:00
shell zsh: reorganize aliases + compdef's; remove compinit (zgen does this) 2016-11-16 15:08:36 +01:00
vcs Reorganize files + refactor scripts 2016-11-10 19:37:15 +01: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: mkdir -p ~/.bin 2016-11-15 14:08:35 +01: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