Find a file
2017-10-03 20:16:52 +02:00
+docker Prepend topic folders with + 2017-04-25 23:29:43 -04:00
+weechat +weechat: use pass to set up secure variables 2017-04-26 20:44:15 -04:00
.enabled.d Complete refactor + arch linux support 2016-10-19 16:56:37 +02:00
bin Refactor python scripts 2017-10-03 19:05:00 +02:00
browser/userstyles Clean up browsers topic 2017-04-25 23:12:12 -04:00
dev dev/+js: alias npmbin => n 2017-09-02 18:57:16 +02:00
editor editor/+emacs: add ~/.cask/bin to PATH 2017-10-03 20:16:52 +02:00
os bspwm: adjust Emacs org-capture window rule 2017-10-03 19:57:52 +02:00
recipes Update triton/proteus recipes 2017-04-26 14:46:11 -04:00
shell Refactor zsh config 2017-10-03 19:55:26 +02:00
vcs Fix hardcoded date in vcs/+git/bin/git-old-commit 2017-08-06 16:09:44 +02:00
.gitignore Prepend topic folders with + 2017-04-25 23:29:43 -04:00
bootstrap bootstrap: fix spacing on output + redirect stderr to stdout 2017-01-09 00:44:23 -05:00
clean clean: remove enabled topics before cleaning dead links 2016-12-23 18:21:40 -05:00
LICENSE Update license 2017-01-06 17:39:22 -05:00
README.md Update/revise README 2017-09-02 19:01:00 +02:00

MIT

Henrik's dotfiles

Fuel for my madness. Designed for Arch Linux, MacOS, and various remotes I frequent.

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

Bootstrap

bootstrap is my idempotent dotfile deployment script.

e.g. ./bootstrap os/+arch shell/+{zsh,tmux} dev/+pyenv

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

Options:
  -i  Don't run install scripts
  -u  Don't run update scripts
  -l  Don't symlink dotfiles
  -d  Do a dry run (only output commands, no changes)
  -y  Overwrite conflicts (no prompts)
  -p  Prompt on file conflict (to overwrite)
  -L  Refresh links; the same as -ui
  -S  Server mode; only install the bare minimum
  -U  Update mode; run update scripts only

Here's a simplified break down of what it does:

# 1. Symlinks dotfiles to $HOME
ln -sfv $topic/.* ~/
ln -sfv $topic/.{config,local}/* ~/.{config,local}/

# 2. Track enabled topics in ~/.dotfiles/.enabled.d.
if [[ -e ~/.dotfiles/.enabled.d/$topic ]]; then
    # 3a. If topic is already enabled, run update script
    $topic/update
else
    # 3b. Otherwise, run install script
    ln -sfv $topic ~/.dotfiles/.enabled.d/
    $topic/install
fi

Clean

clean deletes broken symlinks in $HOME. If passed -u, it will remove all symlinks in .enabled.d/, marking all topics as "disabled".

Usage: clean [-du]

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

Other Relevant Configs

  • Vim (pulled in by the editor/vim topic)
  • Emacs (pulled in by the editor/emacs topic)